1

我是 watir 的新手,并且(相信我)我尝试了所有可用的选项来添加等待和断言,但没有成功。

这是我正在尝试做的事情的简要描述,并感谢您的帮助。

  1. 我登录我的网站
  2. 我使用用户名/密码登录并点击点击按钮。
  3. 我希望等待直到加载下一页
  4. 我想做一些断言来验证登录是否成功。

我的第 3 步和第 4 步因错误而失败element not found

如果我手动登录并且登录成功,我会在第二页的顶部看到文本 Hello,username,这就是我一直试图关闭但没有成功的内容。这可能是非常简单的事情,但由于我是新来的,所以我无法弄清楚。

这是我尝试过的所有命令:

    $b.button(:id, 'usernameLogfaceinButton').click
      #$b.wait_until($b.text.include?("Hello"))
      #($b.text.include?("Hello")).wait_until_present
      #$b.text_field(:text, "Hello").wait_until_present

    if $b.text.include? "Hello"

      puts "Test Passed. Found the test string: Hello- Actual Results match Expected Results." 

    else
      puts "Test Failed! Could not find: Hello"
    end

页面上的 HTML:

<body id="myAccounts" class="cardholderLayout ">
  <div id="content">
    <div id="navigationContainer">
      <div id="headerNavigationMenu" class="innerContents">
        <div class="logo"><img alt="xxx" src="/images/xxx.png?xxxxxxxx"></div>
        <ul class="menu">
          <li class="menuItem">
            <a href="#" class="menuLink">Hello, Bob</a>

我希望有人可以帮助我或指出我正确的方向。

4

1 回答 1

1

尝试:

$b.link(:text => /^Hello/).wait_until_present

请注意:

  • $b.link不是$b.text_field. 该方法需要与您要查找的元素类型相匹配。
  • 定位器中的文本/^Hello/不是"Hello". 如果您传递一个字符串(即"Hello",watir 将查找文本完全匹配的元素。如果您想进行部分文本匹配,那么您需要使用正则表达式。表达式/^Hello/表示查找以“Hello”开头的文本”。
于 2013-06-17T20:31:46.993 回答