gpt4 book ai didi

ruby - 如何正确调试 Capybara/Poltergeist?

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:24 26 4
gpt4 key购买 nike

我正在玩 capybara /闹鬼完美组合,但我无法正确调试。我正在测试一个简单的脚本:

logger = Logger.new "./log/who-scored-com.log"
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, js_errors: false,
debug: true,
logger: logger)
end
browser = Capybara.current_session
browser.visit 'https://www.whoscored.com/LiveScores'
browser.save_page 'page.html'

我期待脚本正常抓取页面并保存它,但是页面是空的,返回:

`Capybara::Poltergeist::StatusFailError: Capybara::Poltergeist::StatusFailError
from /home/vagrant/local/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:351:in `command'
from /home/vagrant/local/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/poltergeist-1.9.0/lib/capybara/poltergeist/browser.rb:34:in `visit'`

现在,这不会给我任何有关此错误的信息。我捕获异常并打印它,它给了我:

“对‘https://www.whoscored.com/LiveScores’的请求未能到达服务器,请检查 DNS 和/或服务器状态”

即使我不知道为什么地址不响应 capybara (并且任何提示将不胜感激:))我不明白为什么配置中使用的 :debug 选项没有似乎没有给我任何信息

最佳答案

你有几个问题

  1. poltergeist 记录器选项定义为“(对象响应放置)- ruby​​ 2.3.0 标准库记录器对象不响应放置,因此它无效。”

  2. 你的例子没有Capybara.current_driver = :poltergeist所以我不确定它实际上是在使用您在那里配置的驱动程序还是以前定义的驱动程序(如果是的话,我预计会在 Logger 对象上出现错误)

  3. debug: true会将 poltergeist 的调试添加到日志中,但也有来自 phantomjs 的调试信息。这是通过传递 phantomjs_options: ['--debug=true'], phantomjs_logger: <an IO object - again not a Logger object> 生成的给司机

  4. 您实际遇到的错误是由于无法协商 ssl 协议(protocol)而导致连接被拒绝 - 要修复它,请添加所需的 ssl 协议(protocol)作为 phantomjs 选项 - `phantomjs_options: ['--ssl -protocol=TLSv1.2']

关于ruby - 如何正确调试 Capybara/Poltergeist?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844186/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com