下拉选择选项Selenium Webdriverjs

时间:2019-06-30 02:19:14

标签: javascript html selenium selenium-webdriver selenium-chromedriver

我要从选项的值而不是属性的值中选择一个选项。 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 :(得分:0)

您可以创建一个动态选择器以单击该选项。

例如:

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

或者您可以进行for遍历所有//select[@id='size']/option元素,提取其文本,如果匹配您的选项,请单击该元素并断开for

for (var element in driver.FindElements(By.XPath("//select[@id='size']/option]"))) {
    if (element.getText() === value) {
        element.click();
        break;
    }
}