Вы должны хотя бы опубликовать предупреждение в своих утверждениях, когда это произойдет. Таким образом, вы знаете, какие ошибки произошли. Если вы сделаете это, вам поможет следующее ...
Добавьте это при инициализации страницы или как только она начнет загружать страницу, о которой идет речь. Вы также можете сделать это на любой странице.
driver.execute_script('''
window.errorCount = 0;
window.onerror = function (error, url, line, column, errorMessage) {
errorCount ++;
//** Add whatever you like from the error information to this json string.
errorJson = '{"code":"' + error.Status + '", "error":"' + error.Status + '", "details":"' + errorMessage + '"}';
//Appending hidden input with details to document. All console errors can be scraped this way, or just ones that stop page load if you like.
$("body").append("<input type='hidden' class='console-error-saved' id='" + errorCount
+ '"' value='" + errorJson + "'");
}
''')
Затем из ваших сценариев Selenium, ожидая появления ожидаемого элемента, если время ожидания истекло и он все еще не находит элемент, запустите:
pageErrors = driver.execute_script('''
var json = "";
var errors = $('.console-error-saved');
for(var x=0; x < errors.length; x++) {
json += $(errors[x]).text();
if(x < errors.length - 1) {
json += ",";
}
}
return "[" + json + "]";
''')
Теперь проанализируйте json из Python, чтобы получить объект из строки. Найдите конкретные ошибки, такие как 502, 503 и т. Д., И сообщите о них, а затем вызовите команду обновления
import json
errors = json.loads(pageErrors)
#... look at the errors and handle them as needed.
# If qualifying error occurred, refresh the page and do your checks again.
driver.refresh()