循环搜索页面以查找未知元素

时间:2015-01-29 06:30:01

标签: java selenium selenium-webdriver

我是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;
           }
        }

2 个答案:

答案 0 :(得分:0)

我打赌你在尝试找到初始元素时会遇到异常。你看到一个例外吗?如果是这样,你能提供堆栈跟踪吗?

考虑首先抓住你需要的所有元素:

  List<WebDriver> elements =  driver.FindElements(By....whatever your locator is...)

然后,使用循环遍历列表并运行断言或条件逻辑。

答案 1 :(得分:0)

您可以有两个解决方案:

  1. 尝试使用不会抛出异常或
  2. 的driver.FindElements
  3. 尝试捕获异常并在此之后继续回到循环的开头。

    环{

    try{
      if(){
       driver.findelement....
      }
     }
    catch(){
    
    }
    

    }