java - 如何使用 java / selenium 在 for 循环中添加条件
问题描述
我想单击“添加”按钮添加项目,如果单击“添加”按钮显示错误,则应删除该添加的项目,然后再次单击“添加”按钮以添加项目
这是我的代码:
driver.findElement(By.id("addItem")).click(); // it will add item
WebElement errrmsg = driver.findElement(By.id("sameAMC-invalid"));
/* if error is displayed then it should remove added item and should
*again add another item again clicking on add item button and should again check
*whether it is showing error message or not if not then else condition should get
*execute*/
if(errrmsg.isDisplayed())
{
driver.findElement(By.id("remove-Itemadd")).click();
Thread.sleep(2000);
}
else
{
driver.findElement(By.id("button-payment")).click();
Thread.sleep(6000);
}
我想在发生错误时设置循环条件,即它应该再次单击添加项目按钮,并且它应该检查它是否显示任何错误,如果没有,那么它应该在其他条件下执行.....我不知道如何做到这一点...需要帮助
解决方案
试试这个代码:使用findElements而不是findElement
driver.findElement(By.id("addItem")).click();
while(true) {
List<WebElement> errMsg = UI.getdriver().findElements(By.id("sameAMC-invalid"));
if(errMsg.size()==1) {
driver.findElement(By.id("remove-Itemadd")).click();
Thread.sleep(2000);
driver.findElement(By.id("addItem")).click();
}
else if(errMsg.size() == 0 ) {
driver.findElement(By.id("button-payment")).click();
Thread.sleep(6000);
break;
}
}
注意:@Murthi 提供的代码会失败,如果没有错误消息。
推荐阅读
- highcharts - 使用phantomjs从highchart导出图像
- c# - MongoDB FindAsync 永远不会在等待时返回
- docusignapi - 为什么用户在 4-5 秒内被从 docusign ui 中踢出
- r - 如何为 R 中的函数创建包含行和列的数据框?
- python - 在一个图形上绘制两组圆形数据
- oracle - 优雅的求和方式
- jenkins - Jenkins API - 获取构建的当前管道阶段
- python - Regex matching a set of characters on a given index
- android - 我怎样才能让两个单独的按钮在一个活动中做两个不同的事情?
- angular - ADAL4 Angular 7 - 如何处理登录错误