java - 如何使用页面对象模型(Webdriver + Java + JUnit)断言 "select"列表具有值或可见文本?

标签 java selenium-webdriver webdriver automated-tests assertion

public Select select;
public Select getSelect(WebElement element) {
    select = new Select(element);
    return select;
}

这是一个我将在测试中使用的函数,用于断言 select 具有文本可见的元素,但我不知道如何断言 select 具有该元素,我认为有更好的方法来做到这一点

@FindBy(id = "...")
WebElement = mainSelect;

public void assertSelectHasElement(String string) {
    getSelect(mainSelect);
    select.selectByVisibleText(string);
    Assert...?
}

最佳答案

您可以使用List<WebElement> allOptions = select.getOptions();获取 Select 的所有选项,然后迭代它们直到找到(或找不到)选项,例如:

@FindBy(id = "...")
private WebElement mainSelect;

public void assertSelectedValue(String value)
    select = getSelect(mainSelect);
    List<WebElement> options = select.getOptions();
    boolean optionExists = false;
    for (WebElement e : options) {
        if (e.getText().equals(value)) {
           optionExists = true;
           break;
        }
    }
    assertTrue("Option x should exist", optionExists);
}

关于java - 如何使用页面对象模型(Webdriver + Java + JUnit)断言 "select"列表具有值或可见文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50289242/

相关文章:

java - 对 ReentrantReadWriteLock#tryLock 失败的 jcstress 测试感到困惑

java - Javascript 更新后获取更改后的 HTML 内容? (html单元)

java - Selenium Webdriver 在 DOM 中查找元素时出错

java - HTML 代码中元素的 XPath

python - 从任务计划程序执行 Python 脚本时出现 0x1 错误

node.js - 获取浏览器的当前 URL

python - 如何获取下一页的页面源

java - 日期范围内的日期范围

java - 无法通过登录页面

java - 将指纹模板保存到数据库 mysql - java