[英]Capybara button.click works on Console but not on a Script (Ruby; Capybara; Poltergeist)
當我在PRY控制台上執行此操作時:
require 'phantomjs'
require 'capybara/poltergeist'
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, :phantomjs => Phantomjs.path)
end
s = Capybara::Session.new(:poltergeist)
s.visit('site')
s.fill_in('field', with: data)
s.find_button('button').trigger('click')
它按預期工作。
但是,當我嘗試對ruby文件腳本執行相同操作時,它將失敗。
編輯:為什么我說失敗,我的意思是表單沒有提交,因此頁面不會重定向。
有人知道為什么嗎?
謝謝
大衛
當您調用s.find_button('button').trigger('click')
時,會發生鼠標單擊,並且當“瀏覽器”關閉時,鼠標立即返回您的代碼,並開始請求下一頁或單擊觸發的任何操作。 因此,如果您立即調用s.html
那將是不正確的,因為該頁面當時尚未實際加載。 您可以sleep
幾秒鍾以使頁面加載,也可以使用Capybara查找器/匹配器,它們會自動等待(最多Capybara.default_max_wait_time秒),直到出現相關元素(這意味着它們等待頁面加載)。 它在pry
控制台中起作用,因為您只是在等待鍵入下一個命令的延遲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.