我正在使用Ruby gem Capybara进行自动化(已阅读this website上的说明)。我有一个简单的脚本,显示我遇到的问题:
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)的问题。
答案 0 :(得分:1)
由于登录字段是不可见的(不透明度:0以允许从下面显示emptyText),因此Capybara默认不会找到它。您可以将visible:false传递给fill_in以查找不可见的元素,在这种情况下,将触发焦点在元素上,这将触发它更改为不透明度: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'
答案 1 :(得分:0)
我找到了解决方案here! 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'