0

到目前为止,我们所有的测试都通过了,但是自从一周以来,我们发现我们编写的 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 的人也在运行测试,但它失败了。以下是 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 语言的情况下单击按钮,以便我的测试顺利通过?

4

1 回答 1

2

我会说按钮的名称-“登录”将是一件好事。Capybara 的click_button方法只能通过 id、text 或 value 找到按钮,所以你必须自己找到它:

find(:css, "input[name='login']").click

如果您在页面的其他地方有其他“登录”按钮,您可能需要限制范围,但如果没有,这应该适合您。

于 2012-08-15T14:03:25.077 回答