我正在尝试使用 XPATH 解析一些元素
这是我的代码:
driver.get("http://watir.com/examples/shadow_dom.html")
shadow_host = driver.find_element(By.XPATH, '//*[@id="shadow_host"]')
shadow_root1 = shadow_host.shadow_root
shadow_host1 = shadow_root1.find_element(By.XPATH, '/span')
selenium.common.exceptions.InvalidArgumentException:消息:参数无效:定位器无效
我知道我可以使用 CSS 选择器,但我想在没有任何 CSS 选择器的情况下使用它。你能帮我吗,如何shadow_host1使用 XPATH 正确编写?谢谢
点击右侧采纳即可:
可以使用以下 XPATH:
shadow_host1 = shadow_root1.find_element(By.XPATH, '//span')
你在查找元素时应该使用绝对路径。因此,您应该使用 "//" 而不是 "/"。
有一个很高效的办法,你直接鼠标右键检查,然后点击出来的框框有一个鼠标的剪头,点页面哪里就会跳转到这个元素的位置,然后直接右键复制xpath即可,如果你只获取一个节点的话,这样是最快的。
您不能将 XPATH 定位器与shadow root一起使用。您可以改用 CSS LOCATORS(在 Chrome/chromedriver 设置上),或者(在使用 Firefox/geckodriver 设置时)使用 javascript 选择器 (querySelector)。
不知道你这个问题是否已经解决, 如果还没有解决的话: