2015-11-19 3 views
0

Я тестирую веб-приложение, написанное на VB.NET. Приложение использует много вложенных фреймов. В одном из фреймов находится список элементов. Во втором фрейме появляются поля, которые вместе с выбором конкретного элемента первого кадра заполняются информацией, полученной из базы данных об этом элементе.Тестирование web-сервера селена прекращается после случайного числа кликов итераций

Я хотел бы создать тест производительности, проверяющий время, прошедшее с момента загрузки, для загрузки данных.

После щелчка при загрузке данных появляется 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(); 
       } 
} 

В какой-то случайный момент автоматизированный тест перестает щелкать. Остальные действия, которые должны соблюдаться, также прекращаются. Он не сообщает никаких ошибок или исключений. Когда я нажимаю вручную в интересном элементе, который заставляет тест возобновляться снова.m, но после повторения случайного числа циклов цикла. Как я могу это решить?

+0

Robert: Это происходит на одной строке (после случайного числа исполнений в цикле) или это происходит в разных строках (разные шаги)? – DasunB

+0

Тест должен выполнять этот цикл, например, 12 часов без перерывов. Это происходит обычно после итераций цикла hundereds, когда он пытается выполнить эту строку: ele4.get (i) .findElement (By.xpath ("td/div/a")). Click(); – Robert

+0

Попробуйте добавить паузу между начальным переключателем кадра и найти элемент tr. Это может быть вызвано проблемой загрузки. – debugger89

ответ

0

Наконец я переписать My проверить на C#. Насколько мне известно, Java не поддерживает таймаут кликов. Аналогичный код в C# не задерживает мою программу, но через 60 секунд выдает исключение (что желательно в моем случае). Более того, одна и та же программа в Java работает правильно в Windows 10 с немного более высокой версией IE (до того, как я работал в Windows 8). Я не знаю, почему это происходит, но, возможно, это может быть ключом к кому-то в будущем.

0

ПРИМЕЧАНИЕ: Это просто пример решения - Пожалуйста, попытайтесь увидеть

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

PS - Добавить Thread.Sleep(), если вам нужно время, больше ждать между щелчками

+0

Вы уверены, что второй клик выдает исключение? В моем случае он всегда щелкает много раз, а затем переходит к следующим шагам. – Robert

+0

Ну, моя ошибка. Поскольку вы переходите к содержимому по умолчанию, у меня создалось впечатление, что после нажатия кнопки он исчезнет (как при всплывании). Кажется, что это не так, вам нужно проверить, будет ли появляться новый элемент после первоначального щелчка и перейти к второму щелчку, только если его нет. Я не мог быть более конкретным, не видя приложения – DasunB

+0

Спасибо за ваши ответы. Я решаю свою проблему по-другому. Я представил свой ответ на этот пост. – Robert

 Смежные вопросы

  • Нет связанных вопросов^_^