3

我正在使用 cucumber 和 capybara 来自动化 Web 应用程序。我必须从下拉列表中选择一个值,但很多时候我都收到类似的错误;“错误的参数类型字符串(预期的数组)(TypeError)”

我试过:1。

second_option_xpath = ".//*[@id='selecttype']/option[2]"  
second_option = find(:xpath, second_option_xpath).text
select(second_option, :from => 'selecttype')

2.

select "Selenium Core", :from => 'selecttype'

3.

page.find_and_select_option("selecttype", 2)

4.

select( "selecttype", {"Selenium Core" => 2})

页面来源类似于:

<select id="selecttype"> 
<option value="Selenium IDE">Selenium IDE</option> 
<option value="Selenium Code">Selenium Core</option> 
<option value="Selenium RC">Selenium RC</option> 
<option value="Selenium Grid">Selenium Grid</option> 
</select>"

请建议我在哪里做错了?

谢谢

4

2 回答 2

7

你有没有尝试过

page.select('Selenium Core', :from => 'selecttype')
于 2012-05-24T19:10:47.817 回答
0

正如 RobertH 建议的那样,您应该使用类似 page.select 的东西,其中 page 是 Capybara::Session 实例。

当您在代码中调用 select 时,您正在调用内核模块的一个方法,该方法混合在基本 Object 类中,每个类都从该类继承。

该方法需要 4 个参数,其中 3 个是 IO 对象数组;这就是它抱怨错误论点的原因。

于 2012-08-18T17:04:35.467 回答