我取消了 Selenium 来自动化一些测试。我对 Selenium 有点陌生。所以我正在尝试验证表单。有些字段带有星号,表示必填字段。我当前正在循环所有可见字段,然后检查前面的元素是否有标签。我还需要检查标签是否有星级。我不太擅长 xpath 的东西,所以任何帮助将不胜感激。
for(int index = 0; index < optionOneinputList.size(); index++){
if(optionOneinputList.get(index).isDisplayed()) {
optionOneListFinal.add(optionOneinputList.get(index).getAttribute("id"));
if(driver.findElement(By.xpath("//*[@id='" + optionOneinputList.get(index).getAttribute("id") + "']/preceding-sibling::label")) != null) {
System.out.println(driver.findElement(By.xpath("//*[@id='" + optionOneinputList.get(index).getAttribute("id") + "']/preceding-sibling::label")));
}
}
}
和我的 HTML 结构,其中一些结构具有星型类别,而另一些则没有:
<div>
<label></label><div class="star">*</div>
<input type="text">
</div>
最佳答案
也许这就是您正在寻找的东西?
"//*[@id='" + optionOneinputList.get(index).getAttribute("id") +
"' and preceding-sibling::div[@class = 'star' ] ]/preceding-sibling::label"
关于java - 使用 java selenium xpath 动态查找前一个同级元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120821/