首页 > 解决方案 > 通过 CSS 选择器或 XPath 使用 JavaScript 定位 Web 元素?

问题描述

在创建 Selenium 自动化测试时,有时我们需要使用 JavaScript 而不是 Selenium 来检索 Web 元素driver.findElement
所以,我知道我们可以做类似的事情

javaScript = "document.getElementsByClassName('myClassName')[0].click();"
driver.execute_script(javaScript)

我看到我们可以通过这种方式定位元素ByClassName,但在大多数情况下,只有使用 CSS 选择器或 XPath 才能唯一地定位元素,而我在ByName文档教程中看不到这种方式。 所以,我想知道是否可以通过 XPath 或 CSS 选择器使用 JavaScript 定位 Web 元素?ByTagNameBytagNameNS

标签: javascriptcssseleniumxpathcss-selectors

解决方案


document.querySelector() //for single node with css like path or selector

document.querySelectorAll() //for multiple nodes

按 ID 选择:

document.querySelector('#ID') //returns single element
document.querySelectorAll('#ID') //returns node list, you may need to use forEach

按班级选择:

document.querySelector('.class') //returns single element
document.querySelectorAll('.class') //returns node list, you may need to use forEach

按类选择内部 div:

document.querySelector('div > .class') //returns single element
document.querySelectorAll('div > .class') //returns node list, you may need to use forEach

这是文档


推荐阅读