直到现在我们所有的测试都通过了,但是自从一周后我们看到了我们写的facebook登录测试的一些问题,这里是我们用facebook登录的步骤:
When /^I login to facebook$/ do
browser = page.driver.browser
browser.switch_to.default_content
fill_in "email", :with => @facebook_test_user["email"]
fill_in "pass", :with => @facebook_test_user["password"]
click_button "Connection"
end
现在这个测试通过正常,因为我们都有法语版的facebook,所以按钮的文字是Connection,但是现在使用其他语言的人正在运行测试并且在那里失败了。以下是facebook按钮的布局:
<div id="login_button_inline">
<label for="u2krk0_2" id="loginbutton" class="uiButton uiButtonConfirm uiButtonLarge">
<input type="submit" id="u2krk0_2" name="login" value="Connection">
</label>
</div>
id不断变化,因此使用id不是一个选项,如何在不关注Facebook语言的情况下点击按钮,以便我的测试正常通过?
答案 0 :(得分:2)
我会说按钮的名称 - “登录”是一件好事。 Capybara的click_button
方法只能按ID,文本或值找到按钮,因此您必须自己找到它:
find(:css, "input[name='login']").click
如果您在页面的其他位置有其他“登录”按钮,则可能需要限制范围,但如果没有,这对您有用。