簡體   English   中英

Capybara button.click在控制台上有效,但不適用於腳本(Ruby; Capybara; Poltergeist)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM