0

我正在使用带有 Selenium RC 的 Soda (node.js) 来自动化浏览器测试。

如果我有一个 AngularJS 指令 -> 说一个带有微调器的按钮 -> 并且它在页面上出现多次,我如何确保单击特定按钮...当它没有 DOM ID 或唯一类时?在我的例子中,“登录”和“其他按钮”是动态的,并且对于ng-view.

    <my-requesting-button text="Login" class="ng-isolate-scope ng-scope">
      <button type="submit" class="btn btn-large"> 
      <img src="/img/progress.gif" style="display: none;">
      <span>Login</span>
     </button>
   </requesting-button>
   <my-requesting-button text="Some Other Button" class="ng-isolate-scope ng-scope">
      <button type="submit" class="btn btn-large"> 
      <img src="/img/progress.gif" style="display: none;">
      <span>Some Other Button</span>
     </button>
   </requesting-button>

苏打水(基本上直接来自示例):

    browser
      .chain
      .session()
      .open('/')
      .clickAndWait('...LOGIN BUTTON REF?')
      .waitForPageToLoad(2 * 1000)
      .clickAndWait('...SOMEOTHER BUTTON REF?')
      .waitForPageToLoad(2 * 1000)
4

1 回答 1

0

您可以给它一个唯一的 ID/类名。如果你知道这个元素只会出现在页面上一次,你可以给它一个唯一的 ID。如果没有,你可以给它一个类名,这样 Selenium 就可以找到第一个,或者靠近你的登录表单的那个。

为此,您可以将文本值(例如“登录”)传递给您的按钮,以便它拥有它:

<button class="{{text}}Button">

text或者你可以告诉 Selenium 找到属性为“Login”的元素之后的按钮。

于 2013-09-09T01:16:01.987 回答