我是Java测试自动化的新手,并尝试编写一个简单的for语句,该语句将查找是否存在标识所存在元素的特定帐号。
我的问题是我不能让循环不止一次。当条件为假时,它似乎会立即突破循环。
我已经筋疲力尽了搜索。任何指针或示例。感谢大家。
以下是我试图遍历的元素的完整cssSelector
格式:
#edit_account_**1201** > div.row.delete-mode.hideout > div.col-md-4 >
div.btn.btn-danger.btn-sm
简单地说,我想要实现的是因为我知道edit_account
数字的范围和格式是循环遍历范围,比如1200 -1250。一旦element/cssSelector
如果可见并存在,我就会打破循环。 : - )
for(int i =1200; i<1250; i++){
System.out.println("Checking through now");
if(driver.findElement(By.cssSelector("#edit_account_"+i+DELETE_CONFIRMATION_BUTTON)).isDisplayed()){
driver.findElement(By.cssSelector("#edit_account_"+i+DELETE_CONFIRMATION_BUTTON)).click();
System.out.println("Account number deleted is:" + i);
break;
}
}
答案 0 :(得分:0)
我打赌你在尝试找到初始元素时会遇到异常。你看到一个例外吗?如果是这样,你能提供堆栈跟踪吗?
考虑首先抓住你需要的所有元素:
List<WebDriver> elements = driver.FindElements(By....whatever your locator is...)
然后,使用循环遍历列表并运行断言或条件逻辑。
答案 1 :(得分:0)
您可以有两个解决方案:
尝试捕获异常并在此之后继续回到循环的开头。
环{
try{
if(){
driver.findelement....
}
}
catch(){
}
}