@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();
    }

Буду рад помощи.
  • Вопрос задан
  • 43 просмотра
Решения вопроса 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();


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

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

Войти через TM ID
Похожие вопросы
BostonGene Москва
от 100 000 до 200 000 руб.
ADP agency Штутгарт
от 50 000 до 55 000 eur.
Payneteasy Москва
от 120 000 руб.
21 авг. 2018, в 11:52
70000 руб./за проект
21 авг. 2018, в 11:28
1000 руб./за проект
21 авг. 2018, в 11:24
40000 руб./за проект