Есть тест: при подтверждении Алерта, в указанном поле должна появиться ссылка, на которую нужно перейти. В зависимости от кол-ва данных, ссылка может генерироваться от 5 - 60 сек
@Test
public void сheck(){
open("http://test.test");
switchTo().alert().accept();
$x("//*[@id=\"listform\"]/table[1]/tbody/tr[24]/td/a").click();
}
Когда тест запускаю с помощью chrome, то хром ждет пока появится элемент ("//*[@id=“listform”]/table[1]/tbody/tr[24]/td/a"). Затем нажимает на ссылку.
Когда тест запускаю через FireFox:
@BeforeTest
public void openFireFox(){
Configuration.browser = "firefox";
}
@Test
public void сheck(){
open("http://test.test");
switchTo().alert().accept();
$x("//*[@id=\"listform\"]/table[1]/tbody/tr[24]/td/a").click();
}
то тест “падает” с Ошибкой Timeout:
Element not found {By.xpath: //*[@id="listform"]/table[1]/tbody/tr[24]/td/a}
Expected: visible or transparent: visible or have css value opacity=0
Timeout: 4 s.
Caused by: NoSuchElementException: Unable to locate element: //*[@id="listform"]/table[1]/tbody/tr[24]/td/a
Альтернативу решению нашел, добавив ожидание элемента:
$x("//*[@id=\"listform\"]/table[1]/tbody/tr[24]/td/a").waitUntil(Condition.visible, 30000);
Но возникает вопрос - эта разница браузеров в ожидании элементов, связана с самими браузерами? (т. е. каждый браузер себя ведет по разному в плане ожидания элементов) и решение является - добавлять ожидание элементов в FF. Или дело не в браузерах, а это я что-то делаю неверно?
Использование .waitUntil в моем случае, наверно, не вариант, т. к. задержки могу быть до 60 сек. а иногда и больше. есть ли ограничения у .waitUntil по времени?
- У меня ещё вопрос вдогонку. К линуксоидам. “с коробки” selenid`a по дефолту запускается Crome браузер, подскажите, где я могу сконфигурировать, чтоб по дефолту запускался FireFox?
Тесты пишу на ОС Linux. в ~/.bashrc посмотрел не нашел PATH на chrome-driver. где ещё могу быть пути в linux на chrome-driver, чтоб их использовал selenide? в линуксе не силен… Может как вариант подскажите, где могу посмотреть логи IntelliJ IDEA во время запуска теста, когда запускается дефолтный chrome, может там увижу путь, откуда он запускается, чтоб удалить PATH?
пишу тесты используя Linux + java + selenide + testng
Спасибо!