在Selenium IDE中,如何在下拉菜单中按索引选择选项?

时间:2009-12-21 21:46:42

标签: select selenium

问题是选项标签发生变化,因此我无法通过标签抓取。我需要通过选项[0]

来抓取

任何想法?

我正在使用Selenium IDE(Firefox),这是我要问的问题:

<tr>
    <td>select</td>
    <td>dateRangeString</td>
    <td>index=1</td>
</tr>

最后一个TD在IDE中有VALUE字段,

我已经定位了select元素,但我需要模拟用户选择第一个选项。我看到这样做的唯一方法是在IDE的VALUE部分使用LABEL =“string”,但字符串是动态的,因此无法正常工作!

6 个答案:

答案 0 :(得分:11)

您可以使用XPath //select/option[index]选择它。

请记住,XPath是标准的基于1的索引。

问题更新后编辑

您可以使用多种不同方式从选择中选择一个选项。下面已经从Selenium IDE中复制了如何创建选项定位器。要选择第一项,它将是index=0

  

select(selectLocator,optionLocator)       参数:

    * selectLocator - an element locator identifying a drop-down menu
    * optionLocator - an option locator (a label by default)

Select an option from a drop-down using an option locator.

Option locators provide different ways of specifying options of an HTML
     

选择元素(例如选择a   特定选项,或用于断言   所选选项满足a   规格)。有几个   选择选项定位器的形式。

    * label=labelPattern: matches options based on their labels, i.e. the visible text. (This is the default.)
          o label=regexp:^[Oo]ther
    * value=valuePattern: matches options based on their values.
          o value=other
    * id=id: matches options based on their ids.
          o id=option1
    * index=index: matches an option based on its index (offset from zero).
          o index=2
If no option locator prefix is provided, the default behaviour is to
     

在标签上匹配。

答案 1 :(得分:6)

不使用label =“”,而是尝试使用index =“1”(以选择第一个元素)。对于这种情况,Selenium提供label =“”,id =“”,value =“”和index =“”。有关更多详细信息,请参阅:

http://release.seleniumhq.org/selenium-core/0.8.0/reference.html

答案 2 :(得分:3)

整蛊,但“类型”命令帮助了我:

<tr>
    <td>type</td>
    <td>id=numStuff</td>
    <td>1</td>
</tr>

相应的html看起来像这样(除了@id和@name属性)

<select id="numStuff" name="numStuff">
                        <option selected= value="0">0</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="3">3</option>
                        <option value="4">4</option>
                        <option value="5">5</option>
                        <option value="6">6</option>
                        <option value="7">7</option>
                        <option value="8">8</option>
                        <option value="9">9</option>
</select>

我想知道它是否适用于超过1次击键的选项值。至少,它暂时是好的。

答案 3 :(得分:0)

在C#中,我使用以下方法解决了这个问题: selenium.Select(&#34; id = yourID&#34;,&#34; index =&#34; + i.ToString());

答案 4 :(得分:0)

在selenium IDE中我用过:

  

命令:选择
  目标:XPath目标以select(非选项)结尾。可以使用FireBug和FirePath获取XPath。
  价值:E.G。 “得克萨斯”   或者你需要的任何价值模式

答案 5 :(得分:0)

例如:

select | Locator | index=1 |

它对我有用。