具有不同 XML 结构的元素的 Xpath

不眠不休

一个元素可以有两个 XML 视图:

1.

<div class="GRUPP_FLG">
    <div role="radiogroup">
        <div class="radioButton">
            <div role="radio" aria-label="Yes">
                <input type="radio">
                <span>Yes</span>
            </div>
        </div>
        <div class="radioButton">
            <div role="radio" aria-label="No">
                <input type="radio">
                <span>No</span>
            </div>
        </div>
    </div>
</div>

2.

<div class="GRUPP_FLG">
    <div>
        <span title="No" class="readonlyField">
            No
        </span>
    </div>
</div>

在第一种情况下,我需要单击单选按钮。

WebElement radioButton = elementWithRadiogroup.findElement(By.xpath(".//*[@aria-label='No']"));
radioButton.click();

在第二种情况下,我需要检查 span 是否有一个类readonlyField

if(!elementWithSpan.getAttribute("class").contains("readonlyField"))
    throw new AutotestError("Error");

如果使用

//div[contains(@class, 'GRUPP_FLG')](//*[@role='radiogroup'] | //span[contains(@class, 'readonlyField')])

然后发生错误:

org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the XPath expression 
because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document'

我怎么能得到 XPath?

昆杜克

试试下面Xpath这应该适合你。

//div[contains(@class, 'GRUPP_FLG')]//*[self::*[@role='radiogroup'] | self::span[contains(@class, 'readonlyField')]]

编辑

//div[contains(@class, 'GRUPP_FLG')]//*[self::input | self::span[contains(@class, 'readonlyField')]]

快照

在此处输入图片说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 XPath 获取 XML 元素的层次结构

如何使用xpath从具有不同html结构的多个元素中选择文本

使用XPATH访问具有多个属性的XML元素的值

如何将具有不同名称空间的相同XML元素反序列化为结构中的不同元素

具有多个包含在不同元素上的XPath

XPath:获取具有相同标签但属性不同的元素

具有多个元素的XML数据结构

具有多个不同Text元素的XML元素

在XPath中返回具有特定条件的相同XML Doc结构

使用SSIS导入具有不同结构的XML文件

如何使用python获取具有默认名称空间的xml文件中所有元素的xpath?

使用XPATH确定是否存在具有特定值的XML元素

使用apache commons配置xpath查询具有属性的空XML元素

使用xpath查找具有某些特定文本的xml元素,或使用lxml在python中查找

XML中的XPath包含具有两个值的元素

WPF 如何在具有 XML 元素或属性的文本框上设置正确的数据绑定 (XPath)?

如何使用具有2 X 2种结构的xpath选择元素?

如何使用xpath查找特定类型的所有xml元素?

在python中解析xml以查找所有元素(节点)的xpath

对具有不同名称空间元素的单个根元素进行Xpath验证

具有不同属性的同一XML标签的结构不同

C# - 将 XML 转换为具有不同结构的新 XML

深度不同的xml文档的xpath

具有相同值的元素的XPath

使用Xpath提取具有属性的元素

具有false焦点值的xPath元素

具有XPath的Java硒查找元素

選擇具有更改 xpath 的元素

XPath导航以XML编码的图结构