我想放在一起的说法是,当我打开一个新的窗口,声称该URL现在包括?preview=true
我到目前为止有:Rspec;断言新窗口的URL字符串
p @browser.url.include? '?preview=true'
然而,当我去运行这个,它总是返回false。
如果我运行
p @browser.url
它正确地读取URL(包括,很明显,“?预览=真正的”字符串的一部分)
是否有读部分的方法我失踪的url字符串?
我想放在一起的说法是,当我打开一个新的窗口,声称该URL现在包括?preview=true
我到目前为止有:Rspec;断言新窗口的URL字符串
p @browser.url.include? '?preview=true'
然而,当我去运行这个,它总是返回false。
如果我运行
p @browser.url
它正确地读取URL(包括,很明显,“?预览=真正的”字符串的一部分)
是否有读部分的方法我失踪的url字符串?
我怀疑你可能有一个计时问题,可能在URL更新之前进行检查。
我手动测试,这只是现在用IRB,以确保它应该工作,而据我所知,它应该。
$irb
irb(main):001:0> require 'watir-webdriver'
=> true
irb(main):002:0> b = Watir::Browser.new :chrome
=> #<Watir::Browser:0x..f7db893ba0a186b8 url="data:," title="">
irb(main):003:0> b.goto 'http://google.com'
=> "http://google.com"
irb(main):004:0> puts b.url
https://www.google.com/?gws_rd=ssl
=> nil
irb(main):005:0> puts b.url.include? '?gws_rd'
true
=> nil
irb(main):006:0> puts b.url.include? '?gws_rd=ssl'
true
=> nil
irb(main):007:0>
您可能需要添加某种同步点的,如等待,将在页面上显示为当地的JS代码的结果元素(例如AJAX调用后),但不存在时,浏览器报告页面被“加载”
您可以在您正试图查询的网址,看它是否启动了一两件事,改变到另一个点插入一个小小的调试循环可能进行测试。
50.times do
puts @browser.url
sleep 0.1
end
只是要清楚,你用['.use'(http://www.rubydoc.info/gems/watir-webdriver/Watir/Window#use-instance_method),以 “重视”产生的窗口? – orde
@orde,是的,我确定使用'.use'。这就是为什么我使用'2P @ browser.url'所以我确信我读正确的信息 – kmancusi