2013-03-18 92 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

相關問題