【问题标题】:Watir-Webdriver, Ruby - click on the table rowWatir-Webdriver, Ruby - 点击表格行
【发布时间】:2016-02-09 06:01:04
【问题描述】:

我正在使用 Watir-Webdriver 和 Ruby。在页面上,我有一个记录表。我需要点击任何一行,它应该进入下一页。如何点击行? 这是表中每条记录的源代码

<tr class="ng-scope" ng-click="clickHandler({rowItem: item})" ng-repeat="item in ngModel">
<td class="ng-bindging">Sometext</td>
<td class="ng-bindging">Sometext1</td>
<td class="ng-bindging">Sometext2</td>
<td class="ng-bindging">Sometext3</td>
<td class="ng-bindging">Sometext4</td>
<td>
<span class="glyphicon glyphicon-play-circle"></span>
</td>

任何建议将不胜感激。

谢谢。

【问题讨论】:

    标签: ruby watir-webdriver


    【解决方案1】:

    由于您不关心您点击的是哪个tr 元素,您只需点击表格中的第一个tr 元素即可:

    record_table = browser.table
    record_table.tr.click
    

    如果第一行是标题行,您可能需要点击最后一行:

    record_table = browser.table
    record_table.trs.last.click
    

    请注意,browser.table 将点击页面上的第一个表格。如果页面上有更多表格,您将需要更具体 - 例如browser.table(id: 'some_id')

    【讨论】:

    • 谢谢。我可以使用您的示例。
    【解决方案2】:

    关键是找到 Watir 可以访问的独特属性。第一个问题是,如果没有 data- 前缀,您的 Angular 应用程序不会生成有效的 html5。

    我不知道你的其他行是什么样的,知道如何点击这一行而不是另一行,但如果该属性是唯一的,你可以使用 css:

    browser.element(css: "tr[ng-repeat='item in ngModel']")

    如果您的文本是独一无二的,您也可以这样做(即使它不太理想):

    browser.td(text: 'Sometext').parent

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多