selenium webdriver 测试在随机次数的迭代点击后停止

The selenium webdriver test is stopped after a random number of iterations clicks

我测试了一个用 VB.NET 编写的 Web 应用程序。该应用程序使用许多嵌套的 iframe。在其中一个框架中是项目列表。在第二个框架中出现的字段,与选择第一个框架的特定元素一起填充了从数据库中检索到的关于该项目的信息。

我想创建一个性能测试来检查从点击加载数据到现在所经过的时间。

加载数据时单击后出现 gif 动画,象征着此操作。此时,我检查动画是否消失,然后继续进行下一次点击。我在 java 中编写代码,我的函数如下所示:

public void function(int i, int repeat){
     for(int a = 0; a<repeat; a++){
         driver.switchTo().defaultContent();
         driver.switchTo().frame("MyFrame");
         driver.switchTo().frame("frame_Left");
         driver.switchTo().frame("Elements");

         List<WebElement> ele4 = driver.findElements(By.tagName("tr"));
         long start=System.currentTimeMillis(); 
         wait.until(ExpectedConditions.elementToBeClickable(ele4.get(i)));
         ele4.get(i).findElement(By.xpath("td/div/a")).click();

         driver.switchTo().defaultContent();
         driver.switchTo().frame("MyFrame");
         driver.switchTo().frame("frame_Right");
         wait.until(ExpectedConditions.invisibilityOfElementLocated((By.xpath("//*[@src='/directiory/Loading.gif']"))));
         long stop=System.currentTimeMillis();  
         
         System.out.println("Time: "+(stop-start) + "\n");
         ele4.clear();
      }
}

在某个随机时刻,自动测试停止点击。应遵循的其他操作也停止。他不报告任何错误或异常。当我手动单击一个使测试恢复的有趣元素时 again.m 但在随机次数的迭代之后循环问题重复出现。 我该如何解决这个问题?

注意:这只是示例解决方案 - 请尝试查看

for(int counter = 0;counter<4;counter++)
    {
     try
       { 
       // Your Code for Clicking The element i.e - ele4.get(i).findElement(By.xpath("td/div/a")).click();
       }
       catch
       {
        // If the First click is a success  second  click will throw an exception which means you have proceed to the next step
        break;
       }
    }

P.S - 如果您需要更长的点击间隔时间,请添加 Thread.Sleep()

最后我用 C# 重写了我的测试。据我所知 Java 不支持点击超时。 C# 中的类似代码不会冻结我的程序,但在 60 秒后会引发异常(在我的情况下这是可取的)。更重要的是 Java 中的相同程序在 Windows 10 和更高版本的 IE 上正常工作(在我处理 Windows 8 之前)。我不知道为什么会这样,但也许它可以为将来的某个人提供线索。