gpt4 book ai didi

selenium - 通过 Selenium Webdriver 处理 id 一直在变化的元素

转载 作者:行者123 更新时间:2023-12-05 08:24:08 24 4
gpt4 key购买 nike

我正在运行脚本来自动化测试用例并遇到这个独特的问题。我已经检测到元素的 ID 并将其用于点击等目的。但是,突然间这些 ID 发生了变化,脚本不再起作用。另一个奇怪的事情是,当在 Chrome 中检查时,这些 ID 与脚本中的相同,但在 Firefox 驱动程序浏览器中不同。

测试驱动程序的 Firebug:-

<p class="description" onclick="selectElementTextListForIE(this,'tile29', 'tile19');selectElementTextList(this,'tile29', '')" id="tile29_span_0_0">
Platinum
</p>

相同元素的 Chrome 检查器:-

<p class="description" onclick="selectElementTextListForIE(this,'tile20', 'tile19');selectElementTextList(this,'tile20', '')" id="tile20_span_0_0">
Platinum
</p>

另外,检测这些 ID 在运行时生成的元素的最佳策略是什么。我什至尝试过使用 XPATH,但它也包含 id 的引用例如。 @id="tile276_input

我们将不胜感激。

谢谢。

阿布舍克

最佳答案

您可以为此使用 CSS。对于您的元素,它看起来像:

<* id="tile276_input" />

您需要做的是找出它发生了什么变化。我假设它是介于两者之间的数字。如果是,那么您的选择器将类似于:

By.cssSelector("*[id^='tile'][id$='input']")

这将查找任何具有“以 tile 开头”和“以 input 结尾”的 ID。在我们的例子中,“tile276_input” 匹配。

参见 this article如果你想了解更多信息

关于selenium - 通过 Selenium Webdriver 处理 id 一直在变化的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com