具有相同类名的容器的Xpath

时间:2014-08-27 18:17:48

标签: java selenium xpath selenium-webdriver

我正在为每个登录会话后创建新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>

1 个答案:

答案 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'))

当然还有其他方法可以做到这一点,哪一个更可靠,更受欢迎取决于页面结构,属性名称和值的唯一性等。

希望有所帮助。