Выпадающий выберите вариант селен webdriverjs - PullRequest
1 голос
/ 30 июня 2019

Я хочу выбрать опцию из выбора по значению опции, а не по атрибуту.HTML:

<select id="size">
   <option>S</select>
   <option>M</select>
   <option>L</select>
</select>

У меня уже есть это на JavaScript, когда я захожу на страницу, он щелкает по раскрывающемуся списку, но как выбрать вариант?

let driver = await new Builder().forBrowser("chrome").build();
    await driver.get("index.html");
    await driver.findElement(By.partialLinkText("Blue Shirt")).click();

    let size = By.id("size");
    let waitForSize = driver.wait(until.elementLocated(size));
    await waitForSize.click();

1 Ответ

0 голосов
/ 01 июля 2019

Вы можете создать динамический селектор для выбора опции.

например:

var value = "S";
driver.FindElement(By.XPath("//select[@id='size']/option[contains(text(), " + value + ")]")).click();

или вы можете сделать цикл, чтобы пройти по всем элементам //select[@id='size']/option, извлечь его текст, и, если он соответствует вашему варианту, щелкните элемент и отключите для

for (var element in driver.FindElements(By.XPath("//select[@id='size']/option]"))) {
    if (element.getText() === value) {
        element.click();
        break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...