Python selenium 通过 xpath 或 css 选择器查找元素

Python selenium find element by xpath or css selector

如何使用 python selenium

单击“NATIONAL”文本
<div class="ellipsis__content">
    <ul class="breadcrumb_new" id="breadcrumb">
       <li>
         <span>NATIONAL</span>
       </li>
    </ul>
</div>

我尝试了以下这些东西,

find_element_by_xpath("//div[@id='breadcrumb']/li/span")
find_element_by_css_selector("#breadcrumb > li > span")

两种方法都不行,有什么想法吗

可能您需要等到元素正确呈现。

代码试用 1 :

time.sleep(5)
driver.find_element_by_xpath("//div[@id='breadcrumb']/li/span").click()

代码试用 2 :

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@id='breadcrumb']/li/span"))).click()

PS : 如果我们有 请检查 dev tools (Google chrome)是否在 HTML DOM 中唯一 个条目。

检查步骤:

Press F12 in Chrome -> 转到 element 部分 -> 执行 CTRL + F -> 然后粘贴 xpath 并查看是否需要 element正在 突出显示 1/1 匹配节点。

试试这个,应该适合你:

ele=driver.find_element_by_xpath("//*[@id='breadcrumb']//span")
ele.click()

这个问题已经有了答案,但要补充几点。

I tried these below things,

find_element_by_xpath("//div[@id='breadcrumb']/li/span")

id breadcrumbul 标签的一部分,但您指的是 div 标签。如果尝试如下,它应该可以工作。

find_element_by_xpath("//ul[@id='breadcrumb']/li/span")

find_element_by_css_selector("#breadcrumb > li > span")

CSS 定位器没有问题。如果您遇到问题,它应该仍然可以工作,您可能需要调试并查看或尝试添加一些 explicit 值。