一个有意思的Ruby Webdriver超时问题的解决过程

本文讲述了作者在使用Ruby的Selenium WebDriver时遇到的超时问题,通过分析源代码和应用Monkey Patch,发现并解决了由于命令超时设置不当导致的问题。问题在于wait的超时与driver接收服务器响应的超时是两个不同的概念,调整driver创建时的timeout参数即可避免此类问题。
摘要由CSDN通过智能技术生成

rescue in receive

因为写ruby的时候感觉混身上下都拽起来了,所以比较喜欢用ruby写代码。今天遇到了一个webdriver timeout的问题,问题本身还是因为我对webdriver不了解以及破文档导致的。首先我们把问题简化一下:


driver = Selenium::WebDriver.for :safari
driver.navigate.to "http://www.faraway.com"

wait = Selenium::WebDriver::Wait.new(:timeout => 1000) # seconds
wait.until { driver.find_element(:css, 'input[name="username"]') }

因为考虑到网站太远了,速度比较慢,于是timeout设的值比较大:timeout => 1000

这里我们访问:faraway这个网站,然后等待出现输入框输入用户名。得到了如下错误信息:

/Users/twer/.rvm/gems/ruby-2.1.1@global/gems/selenium-webdriver-2.42.0/lib/selenium/webdriver/safari/server.rb:41:in`rescue in receive': timed out waiting for Safari to respond (Selenium::WebDriver::Error::TimeOutError)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值