当前位置: 首页 > 知识库问答 >
问题:

使用java selenium xpath动态查找以前的同级元素

司空叶五
2023-03-14

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

共有1个答案

厉文栋
2023-03-14

也许这就是你要找的?

  "//*[@id='" + optionOneinputList.get(index).getAttribute("id") + 
         "' and preceding-sibling::div[@class = 'star' ]  ]/preceding-sibling::label"
 类似资料:
  • 我正在为以下代码编写selenium脚本。 这些是如下所示的复选框。复选框的数量将根据数据库值进行更改。 在我的代码中,我首先检查是否选中了“Frau”复选框。所以我试着按照这个片段。 但是当我试图执行这个脚本时<代码>WebElement div=父级。findElement(By.xpath(“前面的同级:::div”)给我第一个div标记,而不是前一个。我想要一个兄弟姐妹。

  • 问题内容: 我正在使用Selenium,需要获取控件的ID,但是ID是动态的,我无法获取。 数字1122是动态的,并且其他按钮的开头相同。 问题答案: 我已经多次回答类似的问题,您可能想看看。 ExtJS页面很难测试,尤其是在查找元素时。 以下是一些我认为有用的提示: 永远不要使用动态生成的ID。喜欢 永远不要使用绝对/无意义的XPath,例如 利用有意义的自动生成的部分ID和类名。(因此,在我的

  • 本文向大家介绍使用jquery prev()方法找到同级的前一个元素,包括了使用jquery prev()方法找到同级的前一个元素的使用技巧和注意事项,需要的朋友参考一下 检索每个段落,找到类名为 "selected" 的前一个同胞元素: .prev() 方法允许我们在 DOM 树中搜索这些元素的前一个同胞元素,并用匹配元素构造一个新的 jQuery 对象。 .prev()方法找到的是当前元素的同

  • 我正在使用Selenium和Chrome驱动程序,但我无法通过ID找到元素。但是,该元素在浏览器的web检查器中是可见的。我认为这是因为元素是动态生成的(我在浏览器URL栏中看到的所有时间都是相同的URL,但是内容是动态变化的。 解决的方法是适当的下砂驱动等。第一个页面是登录页面,我可以成功地通过它: 对不起,我只是网络浏览器自动化方面的一个十足的noob。

  • 问题内容: 这是我可以使用的粗糙html: 我需要从中遍历,找到最接近的前一个并对其进行处理。 返回的全部负载(我在页面上大约有30个)。我需要瞄准一个。 非常感谢任何提示:) 问题答案: 尝试: 用您的标记测试了它: 将用“ woohoo” 填充最接近的前一个。

  • 问题内容: 如何使用选择器在CSS中选择元素的上述元素 在这里,我想使用class ,以便可以使用CSS选择器获取上述元素。 问题答案: 纯CSS不可能做到这一点…