我很高兴使用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 。所以,我们将非常感谢任何帮助。
答案 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