2016-11-21 45 views
0

我已經開始運行使用1.2.2版本的頁面對象寶石未定義的方法`execute_script」

的堆棧跟蹤

undefined method `execute_script' for <Selenium::WebDriver::Firefox::Bridge:0x00000003cbdba0> (NoMethodError) 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/element.rb:146:in `parent' 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/table_row.rb:30:in `find_index_by_title' 

/usr/lib64/ruby/gems/2.2.0/gems/page-object-1.2.2/lib/page-object/platforms/selenium_webdriver/table_row.rb:15:in `[]' 

它發生我測試時得到這個錯誤試圖從表中獲取的價值在使用的方法,如

left_table_element[rank][column] 

NB。這以前工作了一年多,所以我想知道是否引入了一個新問題?

望着混帳責怪它似乎像扔代碼中的錯誤element.rb行可能已最近更改,也許導致該回歸?

+0

你最近更新的火狐?如果是,嘗試降級到以前的版本:https://support.mozilla.org/en-US/kb/install-older-version-of-firefox –

回答

1

這個問題是由於在硒的webdriver的變化。在3.0.0版本中,Remote::Bridge#executeScript方法被重命名爲#execute_script

的頁對象寶石在1.2.2版本更新爲使用新的方法。然而,沒有更新的gem依賴,以反映所需的版本 - 即硒的webdriver v2.53.4仍列爲最起碼的要求。看起來這已經在最終的頁面對象v2.0版本中得到修復。

在此期間,您可以通過升級到硒的webdriver V3解決該問題(假設你不想降級頁-對象):

gem install selenium-webdriver 
0

要解決此問題,只需要更新您的網頁-object寶石1.2.2版本

創業板安裝-v 1.2.2(僅適用於硒的webdriver 3.X)