如何在watir-webdriver中等待加载下一页然后对一些随机文本进行断言

时间:2013-06-17 19:34:24

标签: watir-webdriver

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

以下是我正在尝试做的简要说明,并感谢您的帮助。

  1. 我登录我的网站
  2. 我使用用户名/密码登录并点击了按钮。
  3. 我希望watir等到下一页加载
  4. 我想做一些断言来验证登录是否成功。
  5. 我的第3步和第4步失败,错误为element not found

    如果我手动登录并且登录成功,我会在第二页顶部看到文本Hello,用户名,这就是我一直试图关闭的但没有取得任何成功。这可能是非常简单的事情,但由于我是新手,我无法弄明白。

    以下是我尝试过的所有命令:

        $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>
    

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

1 个答案:

答案 0 :(得分:1)

尝试:

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

请注意:

  • $b.link代替$b.text_field。该方法需要匹配您要查找的元素类型。
  • 定位器中的文字为/^Hello/,而不是"Hello"。如果您传递一个字符串(即"Hello",则watir将查找文本完全匹配的元素。如果要进行部分文本匹配,则需要使用正则表达式表达式/^Hello/表示要查找以“Hello”开头的文本。