【问题标题】:Find an element by ID is unreliable, but how reliable it is to find an element by Xpath?通过ID查找元素是不可靠的,但是通过Xpath查找元素有多可靠呢?
【发布时间】:2014-09-25 02:22:39
【问题描述】:

我一直在使用 Python 中的 Selenium 为我的公司编写自动化测试用例。

我的测试用例几乎每天都失败,因为对于给定的元素,它在不同的服务器上具有不同的 ID。我今天早上做了一些研究,它的Xpath似乎是比较一致的。

例如:

  • 一个元素被命名为“panel-xxxx_header_hd”,这个“xxxx”是一个四位数的字符串;对于给定的元素,它可以是 1028、1029 或 1030。

请问您对此有何看法?我知道很难从统计学上证明哪个更可靠。

谢谢

【问题讨论】:

  • 请添加 HTML,并举例说明 ID 如何变化。
  • 它和 DOM 一样稳定。
  • 谢谢你,理查德,谢谢你 roippi。
  • 似乎值得一试。你可以使用regular expressions in xpath,类似"panel-...._header_hd",看看它是如何工作的。
  • 很遗憾,这些是 XPath 2.0,任何主流浏览器都不支持。

标签: python selenium xpath


【解决方案1】:

您可以使用 Contains() 来查找部分 ID。

假设没有任何其他元素在其 ID 中包含“_header_hd”,您可以使用以下 xpath(将 * 更改为您期望的任何类型的元素):

//*[contains(@id, '_header_hd')]

或者,如果您想更具体一点,可以使用 CSS selector 来查找 ID 以该子字符串结束的元素(再次,将 * 更改为元素的类型你期待:

*[id$='_header_hd']

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 2020-07-20
    • 2016-03-12
    • 2017-09-14
    • 2014-08-07
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多