Sof*_*ast 1 selenium automation dynamic detect
我正在运行脚本来自动化测试用例并遇到这个独特的问题.我已经检测到并使用了元素的ID来实现点击等目的.然而,突然间这些ID发生了变化,脚本不再起作用了.另一个奇怪的事情是,这些ID与在Chrome中检查时的脚本相同,但在Firefox驱动程序浏览器中有所不同.
测试驱动器的Firebug: -
<p class="description" onclick="selectElementTextListForIE(this,'tile29', 'tile19');selectElementTextList(this,'tile29', '')" id="tile29_span_0_0">
Platinum
</p>
Run Code Online (Sandbox Code Playgroud)
针对同一元素的Chrome检查器: -
<p class="description" onclick="selectElementTextListForIE(this,'tile20', 'tile19');selectElementTextList(this,'tile20', '')" id="tile20_span_0_0">
Platinum
</p>
Run Code Online (Sandbox Code Playgroud)
此外,可能是检测运行时生成ID的元素的最佳策略.我甚至尝试使用XPATH,但它也包含id的引用,例如.@ ID ="tile276_input
任何帮助将不胜感激.
谢谢.
阿布舍克
你可以使用CSS.对于您的元素,看起来像:
<* id="tile276_input" />
Run Code Online (Sandbox Code Playgroud)
你需要做的是找出有关它的变化.我猜它是中间的数字.如果是,那么你的选择器看起来像:
By.cssSelector("*[id^='tile'][id$='input']")
Run Code Online (Sandbox Code Playgroud)
这将查找具有"以...开头tile"和"以...结尾" 的ID的任何内容input.在我们的示例中,"tile276_input"匹配.
如果您想了解更多信息,请参阅此文章