页面对象gem

时间:2016-11-21 16:51:25

标签: ruby page-object-gem

我在使用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中抛出错误的代码行最近可能已被更改并可能导致此回归?

2 个答案:

答案 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)