Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过CSS选择器或XPath使用JavaScript查找web元素?_Javascript_Css_Selenium_Xpath_Css Selectors - Fatal编程技术网

通过CSS选择器或XPath使用JavaScript查找web元素?

通过CSS选择器或XPath使用JavaScript查找web元素?,javascript,css,selenium,xpath,css-selectors,Javascript,Css,Selenium,Xpath,Css Selectors,在创建Selenium自动化测试时,有时我们需要使用JavaScript检索web元素,而不是使用Seleniumdriver.findElement 所以,我知道我们可以像 javaScript = "document.getElementsByClassName('myClassName')[0].click();" driver.execute_script(javaScript) 我知道我们可以通过以下方式定位元素:ByClassName、ByName、ByTagN

在创建Selenium自动化测试时,有时我们需要使用JavaScript检索web元素,而不是使用Selenium
driver.findElement

所以,我知道我们可以像

javaScript = "document.getElementsByClassName('myClassName')[0].click();"
driver.execute_script(javaScript)
我知道我们可以通过以下方式定位元素:
ByClassName
ByName
ByTagName
BytagNameNS
,但在大多数情况下,元素只能通过CSS选择器或XPath进行唯一定位,而我在和中看不到这种方式。
所以,我想知道是否可以通过XPath或CSS选择器使用JavaScript定位web元素

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
document.querySelector('div > .class') //returns single element
document.querySelectorAll('div > .class') //returns node list, you may need to use forEach
要按类选择内部div,请执行以下操作:

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

以下是可通过或使用的

CSS选择器。对于XPath,您可以使用->,对于带有JavaScript的XPath,请参见:“toselect by…:”不是代码,因此不应将其格式化。这里肯定有类似的问题。