2016-11-21 62 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)