【问题标题】:Selenium: How to select an option from a select menu?Selenium:如何从选择菜单中选择一个选项?
【发布时间】:2011-02-18 16:36:19
【问题描述】:

我正在使用 PHPUnit Selenium 扩展在 PHP 中编写 Selenium 测试。

我知道如何在文本字段中输入内容:

$this->type('fieldName', 'value');

但是如何从下拉菜单中选择一个选项?

【问题讨论】:

  • 小技巧:您始终可以使用 Selenium IDE(Firefox 扩展)记录您的测试或部分测试,并使用 File -> Export test case as ... -> PHP Selenium 将记录的测试转换为 PHP遥控

标签: php selenium phpunit selenium-rc


【解决方案1】:

要扩展其他(准确)答案,您可以根据选项的标签、值、id 或索引进行选择。来自http://release.seleniumhq.org/selenium-core/1.0/reference.html的官方参考资料:

select(selectLocator, optionLocator)

参数:

  • selectLocator - 标识下拉菜单的元素定位器
  • optionLocator - 选项定位器(默认为标签)

使用选项定位器从下拉列表中选择一个选项。

选项定位器提供了指定 HTML Select 元素选项的不同方式(例如,用于选择特定选项,或用于断言所选选项满足规范)。选择选项定位器有多种形式。

  • label=labelPattern:根据标签(即可见文本)匹配选项。 (这是默认设置。)
    • label=regexp:^[Oo]ther
  • value=valuePattern:根据选项的值匹配选项。
    • 值=其他
  • id=id:根据 id 匹配选项。
    • id=option1
  • index=index:根据其索引(从零偏移)匹配选项。
    • 索引=2

如果没有提供选项定位器前缀,则默认行为是匹配标签。

【讨论】:

  • 你能把找到这个的链接贴出来吗?
【解决方案2】:
 $this->select("selectFieldIdentifier", "label=Option label");

【讨论】:

    【解决方案3】:
    //note that it's the option text not value
    $this->select('selectName', 'LabelText');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-24
      • 2012-07-10
      • 1970-01-01
      • 2020-09-17
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      相关资源
      最近更新 更多