Ruby - Selenium Webdriver , AngularJS 单选按钮无法检测属性

Ruby - Selenium Webdriver , AngularJS Radiobutton Unable to detect Attribute

本文关键字:检测 属性 单选按钮 AngularJS Selenium Webdriver Ruby      更新时间:2023-09-26

我无法在单选按钮上检测到"checked"属性。

我有两个这样的单选按钮:单选按钮

这些是元素属性:

<input type="radio" ng-change="logConsent(true)" ng-model="xxxConsent" value="true" id="xx_Summary_Radio_Consent_Yes" name="consent" class="ng-valid ng-dirty">

<input type="radio" ng-change="logConsent(false)" ng-model="x2Consent" value="false" id="x2_Summary_Radio_Consent_No" name="consent" class="ng-valid ng-dirty">

使用Selenium网络驱动程序,element.attribute('checked')始终返回nil。我不明白如何检查它是否已选中/启用。我尝试扫描Chrome检查中的更改:在检查单选按钮之前和之后,属性不会更改。有人可以帮我验证一下吗?

也给版主/用户 ::I我并非无法将其他"单选按钮"问题和答案与 StackOverflow 中的答案相关联,尽管我可以看到很多这样的问题。这就是为什么我提出了一个单独的问题。

嗨,

我可以看到 HTML 具有值属性。

它们应该类似于使用事件指令来记录此类点击的计数,并读取属性值 true 和 false,并生成您正在谈论的历史记录。

我相信你可以试试这个 - 为 ng-dirty 设置一个事件侦听器? 或任何它触发的。请与开发人员联系,他们应该能够提供帮助。根据触发的事件,您可以检测到点击是否运行良好 - 至少根据您所描述的内容。在这里,如果您能够读取值 true false ,那么您正在检测一个事件和一个 HTML 节点属性值 - 这 sould 确认点击。虽然您没有完全验证检查的属性。

根据提供的 HTML 代码,没有检查属性,但您正在尝试检索此属性。这就是它给你空值的原因。我希望根据 HTML 提供的"值"属性,其中一个属性为 True,另一个属性为 False。所以我期待选中的单选按钮有值="真",所以尝试值属性。

在Java中,我们可以像下面这样尝试

    myWebElement.getAttribute("value");  //this retrieve true or false
    // or we  can try like below also
    if(myWebElement.isEnabled() ==true){
        //my elemented is in selected state
    }

谢谢穆拉利