Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何断言这一点;选择";列表使用页面对象模型(Webdriver+;Java+;JUnit)具有值或可见文本?_Java_Selenium Webdriver_Webdriver_Automated Tests_Assertion - Fatal编程技术网

如何断言这一点;选择";列表使用页面对象模型(Webdriver+;Java+;JUnit)具有值或可见文本?

如何断言这一点;选择";列表使用页面对象模型(Webdriver+;Java+;JUnit)具有值或可见文本?,java,selenium-webdriver,webdriver,automated-tests,assertion,Java,Selenium Webdriver,Webdriver,Automated Tests,Assertion,这是一个函数,我将在测试中使用它来断言select具有文本可见的元素,但我不知道如何确切地断言select具有该元素,我认为有更好的方法来实现这一点 public Select select; public Select getSelect(WebElement element) { select = new Select(element); return select; } 您可以使用List allOptions=select.getOptions()要获取的所有选项,请选

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

public Select select;
public Select getSelect(WebElement element) {
    select = new Select(element);
    return select;
}
您可以使用
List allOptions=select.getOptions()
要获取
的所有选项,请选择
,然后迭代这些选项,直到找到(或未找到)该选项,例如:

@FindBy(id=“…”)
私有WebElement mainSelect;
公共无效资产SelectedValue(字符串值)
选择=获取选择(主选择);
List options=select.getOptions();
布尔optionExists=false;
for(WebElement e:选项){
如果(e.getText().equals(value)){
optionExists=真;
打破
}
}
assertTrue(“应存在选项x”,optionExists);
}

如果下拉列表中只有一个选定值,请参见下面的帮助

@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);
}

如果在下拉列表中选择了多个选项,则使用katrihpl在另一个答案中提供的逻辑。

使用testNG断言。是的,我在选择列表中有多个选项,因此此示例对我不适用,但无论如何,谢谢,我想这个选项有时也会派上用场,使用这个例子,我应该输入我的select的WebElement名为“mainSelect”?在(WebElement e:options)的
部分中,“options”发光redoptions是select.getOptions()的结果。编辑以澄清。POM是一种用于编写代码的模式,例如,在方法/功能中扭曲网页上的每个操作(按钮/字段等)。断言是另一回事。Java提供了assert语句,只需阅读文档即可。另外,如果您使用TestNg,请阅读以下内容:我知道POM是一种模式,而且在这个问题上,我对POM没有问题,我不知道如何正确地为选择列表中的元素编写断言。我写了一篇关于POM的文章,题目是为了说明为什么代码的结构像我指出的那个样。好的,回顾一下我之前文章的链接。这可能会有帮助。
@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);
}
//method to assert selected value in dropdown
public void assertSelectedValue(String expectedSelectedValue){

    WebElement option = getSelect(webelement).getFirstSelectedOption();
    String actualSelectedItem = option.getText();
    Assert.assertEquals(actualSelectedItem, expectedSelectedValue);
}

//method to select options by visible text in dropdown
public void selectDropdownOption(String optionToSelect){
    getSelect(webelement).selectByVisibleText(optionToSelect);
}