PHP-webdriver Как выбрать третий вариант здесь

У меня есть следующий HTML-код, и я хочу выбрать третий вариант, который выключен (необязательно) с помощью селен PHP-веб-драйвер. Может кто-нибудь, пожалуйста, скажите мне, как я могу это сделать?

В этом HTML все идентификаторы генерируются динамически. Так что я не могу использовать идентификатор, чтобы найти элемент, например, я не могу использовать это:

$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>

1 ответ

Используя функции cssSelector() и selectByVisibleText(), я теперь могу выбрать любую опцию, какую захочу. Благодарю.

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

В 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)');
Другие вопросы по тегам