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

Selenium IDE/Xpath验证复选框仅当元素的标签包含特定文本时才选中

金健
2023-03-14

我正在寻找一些关于如何编写Xpath查询以验证特定复选框是否被选中的指导(嵌套在panel-body div中的div是复选框)。我试图做的是确保包含文本“evaluations”的相应标签的checkbox div包含类“Checked”。以下是我的HTML:

<div class="panel-body">
    <div class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked">
        <input id="access_conferences" class="checkradios access" name="access_conferences" value="true" checked="" type="checkbox">
    </div>

    <label for="access_conferences">Conferences</label>
    <br>

    <div class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked">
        <input id="access_evaluations_viewing" class="checkradios access" name="access_evaluations_viewing" value="true" checked="" type="checkbox">
    </div>

    <label for="access_evaluations_viewing">Evaluations - Viewing</label>   
    <br>
</div>

下面是我的XPath://label[@for=“access_evaluations_viewing”]/preversion::div[@class=“checkradios-checkbox checkradios access icon-checkradios-checkmark checked”]

问题是,即使该框未选中,我的测试用例仍然通过,这表明我的xpath正在抓取其他元素。panel-body div中的其他一些复选框也将被选中,所以我认为可能发生的是Xpath正在使用“checked”类来检查下一个前一个div,而不考虑div的标签包含的文本。

编辑:正如建议的那样,我尝试引用标签前面的div。这样做的问题是,并不是面板主体中的每一个框都必须进行检查。我只需要确认那些与“评估”相关的被检查。当一个或多个除“评估”之外的框未选中时,引用标签上方的div将失败。这是我修订的XPath:

//label[@for=“access_evaluations_viewing”]/preversibling::div[contains(@class,“unchecked”)]

我切换到进行否定比较,因为contains(@class,“checked”)将同时用于选中和未选中的框。

共有1个答案

郑星雨
2023-03-14

如果需要匹配包含“evaluations”文本标签,可以尝试

//label[@for="access_evaluations_viewing"][contains(text(), "Evaluations")]/preceding::div[@class="checkradios-checkbox checkradios access icon-checkradios-checkmark checked"]
 类似资料:
  • 我的问题是:我有两个标签。 我的目标是单击只包含单词“word”而不包含“microsoft word”的标签。 所以我做了这个: 但是这种方法让我点击包含“单词”的标签,而不等于“单词”,所以我点击的标签是第一个,而不是我想要的第二个。 我必须找到一种方法来检查等式,但我没有找到。 我能怎么办?

  • 我试图找到正确的xpath表达式来选择包含特定文本的元素的父元素。 在下面的示例中,我希望选择文本匹配为“4”或任何其他数字的“span”元素,并且父元素与文本“Rooms”匹配: 我的XPath示例-匹配“div”元素中的每个“span” 源代码 我想要的是选择包含数字4的“span”元素作为文本,但html可能会更改,可能只有两个或一个“span”元素,如下例所示: 或

  • 我有一个包含复选框列表的页面。我要单击具有指定文本的复选框。例如。我想点击在HTML中有“使用ocr变体”名称的复选框,复选框在标签标签上方。在firebug中,我可以找到带有以下XPath的the label标记: 我想转到上面的1到有复选框的input标记。我试过使用祖先,但那不起作用

  • 我试图在用户选择标签时显示文本, 例如,我有以下代码: 一旦用户单击复选框,将出现以下文本: “如果您选择了是,……” 我不确定JavaScript是否是实现这一点的最佳途径。 但是,如果是的话,会是这样的吗

  • 我已经为此工作了很长一段时间,但仍然没有找到针对我在stackoverflow中遇到的问题的答案,也没有找到自己尝试Xpath的答案。我很缺乏经验,所以我alpogise如果这是一个简单的问题,但我真的很感激任何帮助。 我正在与Selenium测试使用Wicket的Web应用程序。我需要与相应标签相关的复选框的Xpath。这是因为我需要能够输入标签上显示的值,并根据标签文本(如“001”)找到相关

  • 我得到了这个复选框列表,我想验证是否选中了特定的复选框,我不能使用复选框id,只能使用文本,但它是这样的。 我想做一些像 但是我当然不能这样做,因为xpath选择的是标签而不是输入。我正在考虑使用作为标签来查找输入id。但是我怎么能做到呢? 我不能使用输入和它的值,因为它是动态的,我唯一可以使用的是文本。 测试用例: 在chkList中创建新项目