【问题标题】:undefined method `execute_script' in page object gem页面对象 gem 中未定义的方法“execute_script”
【发布时间】:2017-11-27 19:57:24
【问题描述】:

我在使用 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]

注意。这已经工作了一年多,所以我想知道是否引入了新问题?

查看 git blame 似乎确实在 element.rb 中抛出错误的代码行最近可能已更改并且可能导致此回归?

【问题讨论】:

标签: ruby page-object-gem


【解决方案1】:

问题是由于 Selenium-WebDriver 发生了变化。在 3.0.0 版本中,Remote::Bridge#executeScript 方法被重命名为#execute_script

Page-Object gem 在版本 1.2.2 中更新为使​​用新方法。但是,gem 依赖项并未更新以反映所需的版本 - 即 Selenium-WebDriver v2.53.4 仍列为最低要求。看起来这个问题已经在最终的 Page-Object v2.0 版本中得到修复。

与此同时,您可以通过升级到 Selenium-WebDriver v3 来解决此问题(假设您不想降级 Page-Object):

gem install selenium-webdriver

【讨论】:

    【解决方案2】:

    要解决此问题,只需将您的页面对象 gem 更新到 1.2.2 版本

    gem install -v 1.2.2(仅适用于 selenium-webdriver 3.x)

    【讨论】:

      猜你喜欢
      • 2020-06-15
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多