Selenium Script завершается неудачно, когда ошибка MODAL НЕ отображается - PullRequest
0 голосов
/ 20 июня 2019

Я написал некоторый код Python / Selenium, который проверяет, отображается ли модальное сообщение об ошибке. Код работает, когда отображается модальное сообщение об ошибке, но останавливается и отображает сообщение «Невозможно найти элемент», когда модальное сообщение об ошибке НЕ отображается.

Я бы хотел, чтобы скрипт продолжал работать, даже если модальное сообщение об ошибке не отображается.

Я создал переменную с именем errorDisplays и установил значение false. Затем я создал оператор IF, чтобы проверить, отображается ли модальное сообщение об ошибке. Если это так, errorDisplays получает TRUE.

Наконец, у меня есть блок Try / Except с assert, чтобы увидеть, если errorDisplays = FALSE. Если TRUE, выдается AssertionError и снимок экрана.

errorDisplays = False

if driver.find_element(By.XPATH, "/html/body/div[1]/div/div/div/button").is_displayed():
    errorDisplays = True
else:
    pass

try:
    assert errorDisplays is False
except AssertionError:
    screenshot_name = "FAIL" + "_" + test_case_ID + "_" + browser + "_" + env + "_" + time_stamp + ".png"
    saved_screenshot_location = str(screenshot_directory / screenshot_name)
    driver.get_screenshot_as_file(saved_screenshot_location)
    raise

Кроме того, вот HTML-код для модального

<div class="modal-dialog "><div class="modal-content" uib-modal-transclude="">
        <div class="modal-body text-center ng-scope">
            <h4>An error has occurred. Please try again.</h4>
            If the issue persists call XXX-XXX-XXXX for support.
            <hr>
            <button class="btn btn-danger btn-block" type="button" ng-click="$dismiss()">Close</button>
        </div>
    </div></div>

Когда выполняется скрипт и модальное сообщение об ошибке НЕ отображается, скрипт останавливается, и появляется сообщение «Нет такого элемента, невозможно найти элемент». Я бы хотел, чтобы скрипт продолжал работу, если модальное сообщение об ошибке не отображается.

...