Ошибка захвата JavaScript в Selenium - PullRequest
70 голосов
/ 16 ноября 2010

Есть ли способ зафиксировать ошибки, возникающие в DOM в Selenium и, возможно, пометить их как ошибку на странице?

Для краткого примера, скажем, я пытаюсьчтобы привязать событие к несуществующему элементу управления HTML, мой браузер выдает ошибку:

element abcd not found in the console.

Теперь, если я хочу, чтобы эта же ошибка не прошла мои тесты на селен и сообщението, что отображается в браузере, отображается как сообщение об ошибке.

Возможно ли сделать что-то подобное?

Ответы [ 12 ]

0 голосов
/ 22 февраля 2019

Я использую следующие TestCase.tearDown() в моих тестах Python Selenium, которые делают тест неудачным в случае ошибок JavaScript:

def tearDown(self):
    browser_logs = driver.get_log("browser")
    errors = [logentry['message'] for logentry in browser_logs if logentry['level'] == 'SEVERE']
    if errors:
        self.fail(f'The following JavaScript errors occurred: {"; ".join(errors)}')

Это основано на ответах @kleptog и @ d3ming.

0 голосов
/ 16 ноября 2010

Вы пытаетесь включить событие windows.onerror на своей странице или включить диалоговое окно показа ошибки в настройках IE.Если вы выберете позже, в Se1 будет висеть.PS: это обсуждалось здесь.Сделайте поиск.

...