【发布时间】:2019-08-19 17:46:33
【问题描述】:
如何编写 xpath 以便我可以在 python 中单击带有 selenium 的设置按钮以获取以下 html。由于设置元素没有自己的 ID,因此单击该元素变得更加困难。
<ul class="nav nav-tabs">
<li class="active">
<a data-toggle="tab" href="#editor">Structure</a>
</li>
<li>
<a data-toggle="tab" href="#feedback">Feedback</a>
</li>
<li>
<a data-toggle="tab" href="#settings">General settings</a>
</li>
我尝试了多个命令,但似乎都没有正确。
我正在使用元素(复数),以便我可以查看它是否与任何 xpath 匹配。认为这将是测试不同 xpath 的最干净的方法。如果我正确获得了 xpath,我将使用元素(单数)并将 .click() 添加到末尾。我至少尝试了以下这些代码。
driver.find_elements_by_xpath("//*[@class='nav nav-tabs']//*[href='#settings']")--> return [] (xpath 不匹配?)driver.find_elements_by_xpath("//ul[contains(@class, 'nav-tabs')]")--> 返回 []driver.find_elements_by_xpath(".//a[@href='#settings']")--> 返回 []
当我“点击”该元素时,它通常会给出以下错误消息:
NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":".//a[@href='#settings']"}
【问题讨论】:
-
你试过 CSS 选择器吗?
-
driver.find_element_by_css_selector("a[href='#settings']").click() 返回 NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"a[href='#settings']"}你对我可以尝试什么有什么建议吗?
-
尝试使用
WebDriverWait查看我编辑的答案
标签: python-3.x selenium xpath css-selectors webdriverwait