Ruby 使用Watir设置/清除AngularJS md复选框

Ruby 使用Watir设置/清除AngularJS md复选框,ruby,watir,watir-webdriver,Ruby,Watir,Watir Webdriver,我正在尝试使用Watir gem执行自动测试。我需要通过设置和清除复选框来测试复选框是否有效 复选框的HTML为: <md-checkbox aria-label="Remove" aria-invalid="false" aria-checked="false" tabindex="0" class="ng-pristine ng-valid md-default-theme ng-touched" role="checkbox" ng-model="user.remove_photo"

我正在尝试使用Watir gem执行自动测试。我需要通过设置和清除复选框来测试复选框是否有效

复选框的HTML为:

<md-checkbox aria-label="Remove" aria-invalid="false" aria-checked="false" tabindex="0" class="ng-pristine ng-valid md-default-theme ng-touched" role="checkbox" ng-model="user.remove_photo" style="margin-top: 0px;">
  <div class="md-container" md-ink-ripple="" md-ink-ripple-checkbox="">
    <div class="md-icon"></div>
    <div class="md-ripple-container"></div>
  </div>
  <div ng-transclude="" class="md-label">
    <span class="ng-scope">Remove</span>
  </div>
</md-checkbox>
给出以下错误:

无法使用复选框找到元素:class=>“ng pristine ng valid md default theme-ng toucted”


复选框的问题在于它不是一个HTML复选框-ie。相反,它是一个md复选框,我相信它来自Angular Material库。因此,Watir的checkbox方法不会看到它

您需要将md复选框视为通用元素,并使用click方法设置/清除它:

browser.element(class: 'ng-pristine ng-valid md-default-theme-ng-touched').click
class属性看起来不是唯一的。您可能希望改用其他属性之一。例如:

browser.element(aria_label: 'Remove').click

请分享相关的HTML。我们需要问题中的足够信息来重现问题,请参见。对于上载文件复选框:Remove,您应该在单独的问题中询问关于上载文件的第二个问题,即每个问题问一个问题。创建问题时,请确保提供您得到的Watir代码和异常。您好!!通过aria标签的第二个选项起作用。非常感谢。
browser.element(aria_label: 'Remove').click