没有点击水豚输入按钮

时间:2015-05-22 07:25:38

标签: ruby-on-rails rspec capybara

在我的Capybara测试中,我想测试用户的签名。不幸的是提交按钮

it 'shows an error message for wrong credentials' do
    visit "/"
    expect(page).to have_content("Sign In")
    click_link "Sign In"

    fill_in "Email", with: "wrong_email"
    fill_in "Password", with: "wrong_password"
    click_button "Sign In"

    expect(page).to have_content("Password and Email do not match!")
end
未点击

。这是我的水豚测试:

<?PHP

function doOutputList($TreeArray, $deep=0)
{
    $padding = str_repeat('  ', $deep*3);

    echo $padding . "<ul>\n";
    foreach($TreeArray as $arr)
    {
        echo $padding . "  <li>\n";
        if(is_array($arr)) 
        {
                doOutputList($arr, $deep+1);
        }
        else
        {
                echo $padding .'    '. $arr;
        }
        echo $padding . "  </li>\n";
    }
    echo $padding . "</ul>\n";
}

doOutputList($array);

?>

我没有收到错误消息,但在页面上找不到内容。在实时页面上的测试用例之后显示我期望的错误消息。

1 个答案:

答案 0 :(得分:0)

我在@RAJ的帮助下解决了我的问题。我的页面有两个带有相同文本的按钮(“登录”),并且单击了转到登录表单的按钮。不是实际登录用户的按钮。

要解决此问题,我在提交按钮中添加了ID并替换了

/**
 * @param {Number} - number of times to prompt
 * @return {many_prompts~inner} - the returned function
 */
function many_prompts(count){
  /**
   * My inner function
   *
   * @param {object} prompt Some parameter
   */
  var inner = function(prompt){
    for(var i=0;i<count;i++) alert(prompt}
  };
  return inner;
}

使用:

click_button 'Sign In'

解决了这个问题。