我正在运行脚本来自动化测试用例,并遇到了这个独特的问题。我已经检测并使用了元素ID来实现点击等目的。但是,这些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']")
这将寻找任何有一个ID是“有开始tile和“有端” input。在我们的情况下,"tile276_input"匹配。
tile
input
"tile276_input"
如果您需要更多信息,请参阅本文