我正在运行脚本来自动化测试用例,并发现id不断变化。下面是我的HTML代码 用于试驾的萤火虫:
<button class="G0036HC-b-a G0036HC-b-o G0036HC-b-g" id="gwt-uid-470" tabindex="0" aria-labelledby="gwt-uid-470" role="button" type="button"><div class="G0036HC-b-j">Click to continue</div></button>
检查器:
<button class="G0036HC-b-a G0036HC-b-o G0036HC-b-g" id="gwt-uid-320" tabindex="0" aria-labelledby="gwt-uid-320" role="button" type="button"><div class="G0036HC-b-j">Click to continue</div></button>
仅限ID更改。 任何帮助将不胜感激。
答案 0 :(得分:1)
您可以按xpath
获取该元素,并检查id
属性是否以gwt-uid-
开头:
//button[starts-with(@id, "gwt-uid-")]
答案 1 :(得分:1)
此外,答案@alecxe建议我也建议您尝试使用基于文本的xpath
搜索。我经常遇到等待问题所以也建议使用explicit
等待这个。
// //div[.='Click to continue']/..
By byXpath = By.xpath("//div[.='Click to continue']");
WebElement myDynamicElement = (new WebDriverWait(driver, 10)).until(ExpectedConditions.presenceOfElementLocated(byXpath));
// myDynamicElement.click();
答案 2 :(得分:0)
考虑到以下观察,以下代码应该可以正常工作。
By.xpath(&#34; // button / div [text()=&#39;点击继续&#39;]&#34;)
By.xpath(&#34;(// button / div [text()=&#39; Close&#39;])[2]&#34;)#为第二次出现,请注意硒是不是零索引
答案 3 :(得分:0)
使用跟随 ... //输入[@id =””] /以下::输入[1]
您可以使用前面的以相同的方式识别子节点