Watir:我的 browser.button(:class=>'').click 不工作

Watir: my browser.button(:class=>'').click is not working

我有以下 HTML 结构:

<button class="btn btn-add" data-role="add">Add New User</button>

我正在尝试在我的 ruby-watir 脚本中获取 class 名称,即:browser.button(:class => 'btn btn-add').click, 但它不起作用。

如何使用 watir 单击该按钮?

我没有使用 Ruby,但您可以通过向定位器添加文本属性(添加新用户)来修复它。

赞://button[@class='btn btn-add' and text()='Add New User']

如果还是不行,按照你的尝试,你必须等待一段时间使用sleep。虽然 webdriver 会等待整个页面加载完毕,但某些元素可能需要更多时间才能 display/enable.

您的页面中有多少个具有相同 class 的按钮?

  browser.buttons(:class => "btn btn-add").count

通常 when_present 应该注意时间问题,添加另一个标识符以帮助定位正确的元素

    browser.button(:class => 'btn btn-add', :text => 'Add New User').when_present.click

也试试这个(额外的代码行,但可以帮助解决时间问题):

  Watir::Wait.until { browser.button(:class => 'btn btn-add').visible? }<br>
  browser.button(:class => 'btn btn-add', :text => 'Add New User').click

您也可以尝试使用正则表达式来找到您的按钮

browser.button(:text => /Add New User/).when_present.click

希望对您有所帮助