Selenium XPath-如何查找紧接的前一个元素

麦克雷克

我正在Java Selenium中运行测试,在其中找到一个元素,一旦发现需要找到前一个元素。代码必须是动态的,因为我不知道我从哪个元素开始是5中的第3个,10中的第6个或2中的第1个。

问题是,使用xpath中的previous-sibling,我得到了所有在找到的元素之前的元素,而不是紧接在它之前的元素。例如,这是我的xml:

<div>
    <input formcontrolname="myValues" id="value1" type="radio" value="VALUE1" />
    <label for="value1">Value 1</label>
    <input formcontrolname="myValues" id="value2" type="radio" value="VALUE2" />
    <label for="value2">Value 2</label>
</div>

可以说我找到了“值2”标签作为WebElement,然后接下来要做的就是找到紧接该标签之前的特定输入(id ='value2')。由于它必须与我找到的标签有关,因此我不能仅通过该ID进行查找;我真的不知道id,只是输入应该在标签之前。我以为我可以用这个:

WebElement input = element.findElement(By.xpath("preceding-sibling::input"));

但是该xpath实际上返回了所有作为标签的同级的输入。因此,在示例中,我得到了一个包含两个输入的数组,分别是'value1'和'value2'。Selenium将输入的值设置为id ='value1'的输入,它是返回数组中的第一个。

所以我的问题是,是否存在一个xpath可以返回紧接给定元素之前的一个元素?

安德森

您可以通过指定索引来获得所需的结果:

./preceding-sibling::input[1]

在这种情况下,您将获得类型的第一个(立即)在前同级 "input"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

前一个元素的Selenium XPath

xpath查找前一个元素

如何使用xpath selenium查找元素

Selenium 从 span 元素的 XPath 返回一个空列表

使用 Selenium java 查找 xpath

在Selenium Java中查找元素的Xpath

Selenium:无法通过XPATH Python查找元素

通过 xpath 查找元素 - selenium propper 格式

Selenium + XPath:找不到元素

Java Selenium:如何验证xpath?

如何找到Selenium WebDriver的XPath?

如何通过Selenium和Python根据html查找元素的Xpath

Python 3 + Selenium:如何通过xpath查找此元素?

如何通过Selenium Webdriver和xpath查找按钮元素

如何循环查找Selenium xpath中的子元素?

如何在Selenium Web Driver by.xpath中查找元素

如何使用Selenium使Xpath元素可见?

用selenium定位一个元素后,能不能回溯/报告该元素的xpath?

Selenium IDE / Xpath-当不存在另一个给定元素时,如何在表格单元格中选择一个元素?

Python / Selenium:在Xpath中插入一个迭代器

使用XPath和Selenium for Java获取下一个同级元素

Selenium for Python:通过XPath获取与另一个元素共享的节点的text()

使用Xpath(Selenium C#)在<iframe>内找到一个HTML元素

Python / Selenium webdriver。在页面上找到一个元素并打印/返回它的xpath

Selenium 无法定位元素,一个使用xpath 的搜索按钮

Selenium XPath查找要单击的gif

使用XPath在Selenium WebDriver中查找Href

在网页 selenium python 上查找 xpath

Selenium-XPATH-通过innerHTML搜索元素