2013-03-18 54 views
0

获得如下错误使用:获取未定义的方法`setTimeout的”硒的webdriver红宝石

C:\Ruby\Scripts>W9_File_delete_v1.rb 
C:/Ruby193/lib/ruby/gems/1.9.1/gems/selenium-webdriver-2.30.0/lib/selenium/webdr 
iver/common/timeouts.rb:33:in `page_load=': undefined method `setTimeout' for #< 
Selenium::WebDriver::Driver:0xa3263e4 browser=:firefox> (NoMethodError) 
     from C:/Documents and Settings/rakshiar/My Documents/userdata/Ruby/Scrip 
ts/W9_File_delete_v1.rb:19:in `<main>' 

随着下面的代码:

#-------------------------------------------------------------- 
#Creating here Firefox Browser agent to get into the 
#file deletion process 
#-------------------------------------------------------------- 
driver = Selenium::WebDriver.for :firefox 
driver.get "https://demo.com/" 

#driver.manage.timeouts.implicit_wait = 200 # seconds 
pgload = Selenium::WebDriver::Timeouts.new(driver) 
pgload.page_load=(300) 

我能上的帮助。

回答

1

您不应该直接创建Selenium::WebDriver::Timeouts对象。而是使用driver对象中的适当方法。

driver.manage.timeouts.page_load = 300 
+0

但是我的上面有什么问题?为什么这个声明不起作用?请澄清。 – 2013-03-19 00:24:06

+0

我对selenium-webdriver的内部知识并不了解,但我最好的猜测是你正在使用'driver'对象初始化一个Selenium :: WebDriver :: Timeouts对象。基于[api文档](http://selenium.googlecode.com/svn/trunk/docs/api/rb/Selenium/WebDriver/Timeouts.html),它需要一个'bridge'对象。通常最好使用公共API,而不是内部类。 – 2013-03-19 12:41:13

+0

哼!你是对的,我已经研究了很多。好主意是使用公共方法。 :)谢谢你的抬头。 – 2013-03-19 12:45:34

相关问题