如何断言这一点;选择";列表使用页面对象模型(Webdriver+;Java+;JUnit)具有值或可见文本?
这是一个函数,我将在测试中使用它来断言select具有文本可见的元素,但我不知道如何确切地断言select具有该元素,我认为有更好的方法来实现这一点如何断言这一点;选择";列表使用页面对象模型(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()要获取的所有选项,请选
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);
}