如何调试水豚不点击链接?
How to debug capybara not clicking links?
我正在尝试使用 capybara
进行网页抓取。即,使其单击 link,它实际上是 span
,但附加了 onclick
处理程序:
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler/setup'
require 'capybara/dsl'
include Capybara::DSL
Capybara.default_driver = :poltergeist
visit 'http://example.com'
p current_url
sleep 10
first('#some-id').click
sleep 10
p current_url
但从current_url
来看它失败了。现在我正在使用 poltergeist
驱动程序。当我 运行 此代码针对具有附加 onclick
处理程序的跨度的其他(测试)页面时,它起作用了。我怎样才能找出问题所在?
我做了什么。已安装 selenium-webdriver
。切换到驱动程序 :selenium
:
Capybara.default_driver = :selenium
并在点击 link 后添加 byebug
。现在我看到单击 link 会重定向到其他站点,但还会打开新的 window。但是,capybara
报告 url 没有改变。
UPD 问题是点击 link 打开了两个新的 windows(从用户的角度来看 capybara
只出现了一个 window)。这就是 capybara
报告相同 url 的原因。在 Thomas Walpole 的帮助下,我能够找到新的 url of initial window:
within_window(Capybara.current_session.windows[-2]) { p current_url }
有关选择 window 的其他方法,请参阅 。
我正在尝试使用 capybara
进行网页抓取。即,使其单击 link,它实际上是 span
,但附加了 onclick
处理程序:
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler/setup'
require 'capybara/dsl'
include Capybara::DSL
Capybara.default_driver = :poltergeist
visit 'http://example.com'
p current_url
sleep 10
first('#some-id').click
sleep 10
p current_url
但从current_url
来看它失败了。现在我正在使用 poltergeist
驱动程序。当我 运行 此代码针对具有附加 onclick
处理程序的跨度的其他(测试)页面时,它起作用了。我怎样才能找出问题所在?
我做了什么。已安装 selenium-webdriver
。切换到驱动程序 :selenium
:
Capybara.default_driver = :selenium
并在点击 link 后添加 byebug
。现在我看到单击 link 会重定向到其他站点,但还会打开新的 window。但是,capybara
报告 url 没有改变。
UPD 问题是点击 link 打开了两个新的 windows(从用户的角度来看 capybara
只出现了一个 window)。这就是 capybara
报告相同 url 的原因。在 Thomas Walpole 的帮助下,我能够找到新的 url of initial window:
within_window(Capybara.current_session.windows[-2]) { p current_url }
有关选择 window 的其他方法,请参阅