【问题标题】:Python Selenium Finding Element With Dynamic URL and Name with Little HTMLPython Selenium 查找带有动态 URL 的元素和带有少量 HTML 的名称
【发布时间】:2021-07-30 13:48:38
【问题描述】:

大家好! 今天我正在使用 Python 3 和 Selenium Web 驱动程序。我在按元素查找时遇到问题。这是 HTML:

<a _ngcontent-pxc-c302="" class="name ng-star-inserted" href="/person/20d4a795d3fb43bdbee7e480df27b05b">michele regina</a>

目标是点击出现在列出的列中的名字。

每次刷新页面时名称都会更改。这带来了两个问题,链接文本是名称并且它会发生变化,并且对于每个不同的名称,链接也会不断变化,除了 /person/ 的部分。

我尝试了以下方法:

driver.find_element_by_css_selector("a.name ng-star-inserted").click()
driver.find_element_by_class_name("name ng-star-inserted").click()

这导致元素不是可点击的错误。 我还通过复制和粘贴从 Google 检查器复制的整个 XPath 来尝试 xpath...lol

    driver.find_element_by_xpath('/html/body/app-root/app-container/div/div/tc-app-view/div/div/div/ng-component/mat-sidenav-container/mat-sidenav-content/div/div[2]/tc-person-table-container/tc-collapse-expand[1]/section/tc-person-table/table/tbody/tr[1]/td[2]/tc-person-table-cell/a').click()

它有时会起作用,这很奇怪,但我相信必须有更好的方法。非常感谢您!任何帮助表示赞赏!另外,我对 Python 很陌生,我对 HTML 的了解为零,而且我对堆栈也比较陌生!谢谢!

【问题讨论】:

  • 你能分享一个网页链接吗?
  • 不抱歉,它在登录范围内,我不能放弃它。但也许我可以获得更多的 HTML,这会有用吗?我只是不知道要寻找什么。
  • 分享整个页面的 HTML,或者至少大块的 HTML 可能会有所帮助

标签: python selenium selenium-webdriver xpath


【解决方案1】:

从给定的完整 xpath 中,您正在寻找的 a 标记位于 table,section,div。在这些标签中查找 id 并跟踪 a

【讨论】:

    猜你喜欢
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2018-05-19
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多