使用javaselenium-xpath动态查找上一个同级元素



我正在使用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"

相关内容

最新更新