0

自動化の目的で Ruby gem Capybara を使用しています (この Web サイトの説明を読んでいます)。私が抱えている問題を示す簡単なスクリプトがあります。

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

ここSOや他のWebサイトからさまざまな提案を試みましたが、成功しませんでした。他の Web サイト (google.com など) にはそれほど問題がないため、これは単純に RingCentral Web サイト自体に関係していると思います。

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 に答える