PHP-webdriver如何在这里选择第三个选项

时间:2017-10-26 14:03:53

标签: selenium-webdriver facebook-php-webdriver php-webdriver

我有以下html,我想使用selenium PHP-webdriver选择关闭(可选)的第三个选项。谁能告诉我怎么办?

在此HTML中,动态生成所有 ID 。所以我不能使用id来查找元素,例如我不能使用它:

$driver->findElement(WebDriverBy::id('ajax-item-ExchangeEmail-12345'));

我们可以使用cssSelector()或xpath()吗?如果是,那怎么办?

感谢。

<div id="ajax-item-12345" class="input-group" title="ExchangeEmail">
    <label class="input-group-addon" for="ajax-item-ExchangeEmail-12345">ExchangeEmail</label>
    <select id="ajax-item-ExchangeEmail-12345" class="form-control" name="category_resource[12345]">
        <option value="2">On (mandatory)</option>
        <option value="1">On (optional)</option>
        <option value="0">Off (optional)</option>
        <option value="3">Off (mandatory)</option>
    </select>
</div>

2 个答案:

答案 0 :(得分:1)

使用 cssSelector() selectByVisibleText()函数,我现在可以选择任何我想要的选项。感谢。

with(new WebDriverSelect($driver->findElement(WebDriverBy::cssSelector('div[title="ExchangeEmail"] select'))))
        ->selectByVisibleText('Off (optional)');

答案 1 :(得分:0)

epochs命令可用于使用标签文本从下拉字段中选择列表选项:

示例,要使用CSS选择器:

selectByVisibleText()

示例,要使用XPath:

$selectDiv = WebDriverBy::cssSelector('div[title="ExchangeEmail"] select');
$selectElement = new WebDriverSelect($driver->findElement($selectDiv));
$selectElement->selectByVisibleText('Off (optional)');