Задать вопрос
@Rusikosan

Как Selenium + Java добавить обработчик собития window.onbeforeunload?

Доброе время суток господа. Такой вопрос. Я слаб в автотестах, но мне достались автотесты которые нужно актуализировать. Когда я запускаю тесты в зависимости от ситуации иногда в браузере срабатывает событие beforeunload которое не дает закрыть браузер и метод WebBrowser.quit() не может выполнится полностью. На stackoverflow я нашел совет , что нужно повесить скрипт selenium.runScript("window.onbeforeunload = null;") , но я не могу понять в какой части.
Имеется базовый класс от которого наследуются уже классы с тестами :
public class FormBaseTest {

    @BeforeMethod(alwaysRun = true)
    public void setUpMethod() {
        String testName = getClass().getDeclaredMethods()[0].getName();
        System.out.println(testName + " started");
        getDriver().manage().window().maximize();
        WebBrowser.implicitWait();
    }

    @AfterMethod(alwaysRun = true)
    public void tearDownMethod() {
        String testName = getClass().getDeclaredMethods()[0].getName();
        System.out.println(testName + " ended");
        System.out.println("");
        WebBrowser.quit();
    }

    @AfterTest(alwaysRun = true)

    public void tearDown() {
        WebBrowser.quit();
    }

Буду рад помощи.
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@Rusikosan Автор вопроса
В общем я поборол эту проблему так (часть кода):
@AfterMethod(alwaysRun = true)
    public void tearDownMethod() {
        String testName = getClass().getDeclaredMethods()[0].getName();
        System.out.println(testName + " ended");
        System.out.println("");
        JavascriptExecutor jse = (JavascriptExecutor)getDriver();
        jse.executeScript("window.onbeforeunload = null;");
        WebBrowser.quit();
    }

    @AfterTest(alwaysRun = true)

    public void tearDown() {
        JavascriptExecutor jse = (JavascriptExecutor)getDriver();
        jse.executeScript("window.onbeforeunload = null;");
        WebBrowser.quit();


Может кому-то поможет. Удачи
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы