我在使用1.2.2版本的页面对象gem
运行我的测试时开始出现此错误堆栈跟踪
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。以前已经工作了一年多,所以我想知道是否有新问题引入?
看看git责备,看起来似乎在element.rb中抛出错误的代码行最近可能已被更改并可能导致此回归?
答案 0 :(得分:1)
问题是由于Selenium-WebDriver发生了变化。在3.0.0版中,Remote::Bridge#executeScript
方法已重命名为#execute_script
。
在1.2.2版中更新了Page-Object gem以使用新方法。但是,gem依赖项未更新以反映所需的版本 - 即Selenium-WebDriver v2.53.4仍列为最低要求。看起来这已经在最终的Page-Object v2.0版本中得到修复。
与此同时,您可以通过升级到Selenium-WebDriver v3来解决问题(假设您不想降级Page-Object):
gem install selenium-webdriver
答案 1 :(得分:0)
要解决此问题,只需将页面对象gem更新为1.2.2版本
gem install -v 1.2.2(仅适用于selenium-webdriver 3.x)