0

我将 Ruby gem Capybara 用于自动化目的(已阅读本网站上的说明)。我有一个简单的脚本来显示我遇到的问题:

require 'capybara'
session = Capybara::Session.new(:selenium)
session.visit 'https://service.ringcentral.com/'
session.fill_in 'LoginName', with: '555-555-5555'

我在 SO 和其他网站上尝试了许多不同的建议,但没有成功。我认为这与 RingCentral 网站本身有关,因为我对其他网站(例如 google.com)没有那么多问题。

4

2 回答 2

1

由于登录字段是不可见的(不透明度:0 以允许从下方显示 emptyText)Capybara 默认不会找到它。您可以将 visible: false 传递给 fill_in 以查找不可见元素,在这种情况下,这将触发对元素的焦点,这将触发它更改为 opacity: 1 并继续填充数据。

require 'capybara'
session = Capybara::Session.new(:selenium)
session.visit 'https://service.ringcentral.com/'
session.fill_in 'login-form-username-field-LoginName', visible: false, with: '555-555-5555'
于 2015-08-14T20:17:50.877 回答
0

我在这里找到了解决方案!Capybara 默认忽略隐藏元素。我想发布我的答案,因为另一个解决方案很难找到,因为我不知道我试图填写的字段是一个隐藏元素,所以我不认为这篇文章是重复的。如果您很难让 Capybara 查找和填写字段,请尝试将 ignore_hidden_​​elements 选项设置为 false,即使您的字段完全可见。

require 'capybara'
session = Capybara::Session.new(:selenium)
Capybara.ignore_hidden_elements = false
session.visit 'https://service.ringcentral.com/'
session.fill_in 'login-form-username-field-LoginName', with: '555-555-5555'
于 2015-08-14T06:42:13.457 回答