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)');