Тесты периодически падают. Почему же?

А где вы в этом коде увидели проверки? :slight_smile:

нет?

Угу. Один индус тоже написал

"some_text".equals(element.getText())

и искренне думал, что это ассерт.

3 лайка

Попробовал добавить Thread.sleep(5000) в этом тесте:

@Test(priority = 3)
public void checkProvidersTest() throws Exception {
    driver.findElement(By.xpath("//div[2]/div/div[1]/div[1]/a")).click();
    driver.findElement(By.xpath("//p[1]/a")).click();
    Assert.assertTrue(isElementPresent(By.xpath("//div[2]/div/div/table")));
    driver.findElement(By.xpath("//tr[2]/td[2]")).click();
    Thread.sleep(5000);
    Assert.assertTrue(isElementPresent(By.xpath("//div/div[3]/div[4]/div/div[3]/div/div[2]/div/div/table")));
}

Но все равно на втором Assert-е выдает эксепшин.

А кусок кода страницы можно посмотреть? Очень любопытно посмотреть на все эти безликие div и tr

Там gwt - его “нахрапом” не возьмешь.

Как-то вот так:

<div style="position: absolute; left: 0px; width: 100%; top: 0px; min-width: 20px; min-height: 20px; overflow: hidden;">
<div style="position: absolute; left: 0px; width: 100%; bottom: 0px; min-width: 20px; min-height: 20px; overflow: hidden;">
<div style="position: absolute; left: 0px; width: 100%; overflow: hidden; top: 47px; height: 303px;">
<div class="GOSHEXWDON" style="position: relative; overflow: hidden; height: 100%;">
<div style="position: absolute; z-index: -32767; top: -20ex; width: 10em; height: 10ex; visibility: hidden;" aria-hidden="true"/>
<div style="position: absolute; overflow: hidden; left: 0px; top: 0px; right: -17px; bottom: -17px;">
<div style="position: absolute; overflow: scroll; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<div class="GOSHEXWDJG" style="position: relative; min-width: 20px; min-height: 20px; display: block;">
<div style="visibility: hidden; position: absolute; height: 100%; width: 100%; overflow: scroll; z-index: -1;">
<div style="visibility: hidden; position: absolute; height: 100%; width: 100%; overflow: scroll; z-index: -1;">
<table class="table-condensed table-bordered table-striped" cellspacing="0" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
<tr class="GOSHEXWDLE" __gwt_subrow="0" __gwt_row="0">
<tr class="GOSHEXWDKF GOSHEXWDMF" __gwt_subrow="0" __gwt_row="1">
<tr class="GOSHEXWDLE GOSHEXWDCF" __gwt_subrow="0" __gwt_row="2">
<td class="GOSHEXWDKE GOSHEXWDME GOSHEXWDNE GOSHEXWDDF">
<td class="GOSHEXWDKE GOSHEXWDME GOSHEXWDDF">
<div __gwt_cell="cell-gwt-uid-421" style="outline-style:none;">EasyPay</div>
</td>
<td class="GOSHEXWDKE GOSHEXWDME GOSHEXWDDF">
<td class="GOSHEXWDKE GOSHEXWDME GOSHEXWDHF GOSHEXWDDF">
</tr>
<tr class="GOSHEXWDKF" __gwt_subrow="0" __gwt_row="3">
<tr class="GOSHEXWDLE" __gwt_subrow="0" __gwt_row="4">
<tr class="GOSHEXWDKF" __gwt_subrow="0" __gwt_row="5">
<tr class="GOSHEXWDLE" __gwt_subrow="0" __gwt_row="6">
<tr class="GOSHEXWDKF" __gwt_subrow="0" __gwt_row="7">
<tr class="GOSHEXWDLE" __gwt_subrow="0" __gwt_row="8">
<tr class="GOSHEXWDKF" __gwt_subrow="0" __gwt_row="9">
</tbody>
</table>
</div>
</div>
</div>
<div style="position: absolute; overflow: hidden; right: 0px; bottom: 0px; width: 0px; height: 0px;">
<div style="position: absolute; overflow: hidden; left: 0px; top: 0px; right: 0px; bottom: 0px; display: none;">
<div style="position: absolute; overflow: hidden; top: 0px; right: 0px; bottom: 0px; width: 17px; display: none;">

Что-то спасет?

Опыт в автоматизации.

А что это за ресурс? Может все-таки стоит подумать над целесообразностью?

Это понятно. А в моем случае, вариантов больше нет. Может напишете, хоть в какую сторону смотреть?

Слишком много этих “сторон” на вашем текущем уровне.
“Нельзя так просто взять… и написать стабильные тесты для GWT+IE”
Но что бы не флеймить, покажу “тропинку” - scLocator - Google Search

Спасибо!

Еще такой вопрос:
если я проставлю статические id, и буду по ним искать.Столкнусь ли я с такими же проблемами?

Уух! представляю, на сколько эти тесты офигенные в поддержке.
наверно при устройстве на новую работу, надо просить показывать часть кода автотестов работадателя :wink:

Где-то перестанет падать, где-то нет. Все “пофиксить” таким способом не получится.

Советую применить google для поиска, почему могут быть такие ошибки.
Но вообще часто можно понять по названию exception’а или stack trace. У вас огромные проблемы с локаторами. Нужно понимать, в какой момент времени какой элемент видим, а какой - нет.

Мой тебе совет - перед тем как использовать xpath почитай как его ПРАВИЛЬНО использовать.
Ибо эта “простыня” вызывает лишь слезы на глазах =)

Окей =)

Stalereference Exeption падает из-за того,что элемент больше не привязан к DOM. Нужно дождаться елемента, а потом уже на него кликать. В Selenium.Support (Если не ошиблась с названием библиотеки) есть класс ExpectedConditions. И кстати для Java там больше вариантов, чем для C#.