gpt4 book ai didi

java - Selenium isSelected() 方法在撒谎

转载 作者:行者123 更新时间:2023-12-01 18:13:48 27 4
gpt4 key购买 nike

我正在尝试用 Selenium 测试一组单选按钮。我已将它们分组在一个列表中

@FindBy(xpath = "//ux-button-group//input[@name='options']") 
private List<WebElement> granularity;

当我测试第一个选项是否被选中时,它返回false

assertTrue(granularity.get(0).isSelected(), "Granularity should have selected the first option");

我已经调试并发现,如果我尝试使用最后一个元素 (3),那么它会给我 true。您可能像我一样认为列表中的顺序以某种方式颠倒了,但事实并非如此。我已经通过检索列表中每个元素的 id 进行了检查,它们的顺序正确。我也尝试检索“checked”属性,但这是错误的。对于前 3 个按钮返回 null,对于最后一个按钮返回 true!

HTML:

<div data-toggle="buttons" class="ux-button-group btn-group  btn-lg" data-e2e="ux-button-group">
<!----><!---->
<label class="btn btn-primary btn-lg ng-star-inserted active">
<input autocomplete="off" name="options" type="radio" id="shared.granularity.0" checked="true"> Daily <!---->
</label>
<label class="btn btn-primary btn-lg ng-star-inserted">
<input autocomplete="off" name="options" type="radio" id="shared.granularity.1" checked="false"> Weekly <!---->
</label>
<label class="btn btn-primary btn-lg ng-star-inserted">
<input autocomplete="off" name="options" type="radio" id="shared.granularity.2" checked="false"> Monthly <!---->
</label>
<label class="btn btn-primary btn-lg ng-star-inserted">
<input autocomplete="off" name="options" type="radio" id="shared.granularity.3" checked="false"> Yearly <!---->
</label>
<!----><!---->
</div>

最佳答案

嗯,xpath 似乎不正确,ux-button-group 应该是一个像这样使用它的标签。

xpath 应该是:
//div[contains(@class, 'ux-button-group')]//input[@name='options']

或更简单的CSS:
.ux-button-group 输入[name=options]

或其他CSS(更好,因为你可以从id名称中看到代表什么):
输入[id*='共享.粒度']

如果可能并且没有任何限制,也可以尝试 selenium 3.141.59。

关于java - Selenium isSelected() 方法在撒谎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60411620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com