0

我有以下 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>
4

2 回答 2

1

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

with(new WebDriverSelect($driver->findElement(WebDriverBy::cssSelector('div[title="ExchangeEmail"] select'))))
        ->selectByVisibleText('Off (optional)');
于 2017-10-26T15:29:03.513 回答
0

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

例如,使用 CSS 选择器:

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

例如,使用 XPath:

$sel = $driver->findElements(WebDriverBy::xpath('//select'));
$select = new WebDriverSelect($sel);
$select->selectByVisibleText('Off (optional)');
于 2020-02-01T10:12:08.890 回答