我正在为每个登录会话后创建新id的java应用程序编写selenium测试,因此我无法使用ID找到元素。
如何在不使用ID的情况下在xpath中找到具有相同名称的第二或第三类
<div class="aui_FieldLayout_InputContainer">
<textarea id="gwt-uid-1601" class="aui-TextAreaInput printable" rows="4"></textarea>
</div>
<div class="aui_FieldLayout_InputContainer">
<textarea id="gwt-uid-1602" class="aui-TextAreaInput printable" rows="4"></textarea>
</div>
<div class="aui_FieldLayout_InputContainer">
<textarea id="gwt-uid-1603" class="aui-TextAreaInput printable" rows="4"></textarea>
</div>
答案 0 :(得分:2)
有多种方法可以做到这一点。一种选择是通过xpath查找元素并检查id
属性是否以gwt-uid-
开头:
driver.findElements(By.xpath('//textarea[starts-with(@id, "gwt-uid-")]'))
另一个选择是依赖textarea
的容器:
driver.findElements(By.xpath('//div[@class="aui_FieldLayout_InputContainer"]/textarea'))
当然还有其他方法可以做到这一点,哪一个更可靠,更受欢迎取决于页面结构,属性名称和值的唯一性等。
希望有所帮助。