Selenium 2 устанавливает время ожидания для определенных команд - PullRequest
1 голос
/ 24 ноября 2011

У меня есть команда webDriver.switchTo().alert();, которая имеет тайм-аут и ждет, пока не обнаружит предупреждение или истекшее время превышает значение тайм-аута. Я хочу уменьшить время ожидания для этой конкретной команды, но не нашел пути. Как я могу это сделать?

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

Обновление

Это ядро ​​Selenium, и я использую его следующим образом:

    try {
        // TODO PERFORMANCE PROBLEM BECAUSE OF TIMEOUT IF NO ALERT EXISTS
        Alert alert = webDriver.switchTo().alert();

        // check if alert exists
        if(alert != null) {
            String alertText = alert.getText();

            // TODO alert handling
            log.info("Alert detected: {}", alertText);
        }
    } catch (Exception e) {
        // timeout if alert does not exist
    }

1 Ответ

1 голос
/ 02 декабря 2011

Не видя класса, который оборачивает этот вызов метода, мне придется сделать предположение.Я предполагаю, что вы завернули это в ожидание оповещения или какую-либо другую функцию, которая блокирует, пока страница не будет загружена или пока не будет завершен document.ready.Таким образом, все, что блокирует скрипт, должно быть проверено путем запуска приложения в режиме отладки и пошагового выполнения методов.Если вы хотите опубликовать еще немного кода, я мог бы помочь вам лучше.

-------- РЕДАКТИРОВАТЬ ----------

Единственный способ сделать это - расширить класс Alert в пространстве имен Selenium.перегрузите его мгновенным сбоем, и я предполагаю, что он использует какую-то форму javascript, чтобы переключиться на предупреждение, которое вы сможете указать сбой с первой попытки.Я не могу дать вам какой-либо конкретный код, потому что не могу найти источник для класса Alert.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...