未定义的方法select_list使用ruby with watir 2.0&硒网络驱动程序

时间:2014-04-29 10:41:23

标签: ruby selenium-webdriver watir

我很高兴使用ruby和watir并在我去学习它。

我尝试使用select_list方法在选择框中选择一个条目但是继续

'undefined method 'select_list' for #selenium::webdriver. <NoMethodError>

用于进行选择的代码行

browser.select_list(:name, "linkType").set("Content Page")

我也试过

browser.select_list(:name, "linkType").select("Content Page")

我希望来电的网站代码是

<select name="linkType" size="4">
<option value="Content Page">Content Page</option>
<option value="Preset Page">Preset Page</option>
<option value="Form">Form</option>
</select>

我可能遗漏了一些简单的东西,但这是我第一次使用 ruby​​ / watir / selenium 。所以,我们将非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我可以想到例外的两个可能原因。

浏览器类型错误

基于异常,它说browser是Selenium :: Webdriver对象。要使用select_list方法,您需要一个Watir :: Browser(或Watir :: Element)对象。

我猜你的某个地方有这条线:

browser = Selenium::WebDriver.for :firefox

这是创建Selenium浏览器/驱动程序而不是Watir浏览器。你想做的事:

browser = Watir::Browser.new :firefox

使用错误版本的Watir

根据问题的标题,您正在尝试使用Watir 2.0和Selenium-Webdriver。这些彼此不兼容。 Watir 2.0,现在是Watir-Classic,根本不使用Selenium-Webdriver。

如果您想将Selenium-Webdriver与Watir API一起使用(例如select_list之类的方法),则需要使用Watir-Webdriver gem

换句话说,脚本的顶部会有:

require 'watir-webdriver'
browser = Watir::Browser.new :ff

或者,如果安装了Watir meta gem,使用除IE以外的任何浏览器都会导致加载Watir-Webdriver gem:

require 'watir'
browser = Watir::Browser.new :ff