通过CSS选择器或XPath使用JavaScript查找web元素?
在创建Selenium自动化测试时,有时我们需要使用JavaScript检索web元素,而不是使用Selenium通过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
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…:”不是代码,因此不应将其格式化。这里肯定有类似的问题。