def load_page(page_url, remote_server, max_load_seconds, \
screenshot_dir, should_save_screenshot):
load_timeout = 120 # seconds
is_ok = True
driver = webdriver.Remote(command_executor = remote_server, \
desired_capabilities=DesiredCapabilities.CHROME)
try:
# Cleanup cache
driver.delete_all_cookies()
# driver.set_page_load_timeout(load_timeout)
print("Open page: %s" % (page_url))
start_clock = time.clock()
end_clock = time.clock()
elapsed_seconds = ((end_clock - start_clock) * 1000 - sleep_delay)
if elapsed_seconds > max_load_seconds:
print("ERROR: page load is too slow. It took %s seconds, more than %d seconds." \
% ("{:.2f}".format(elapsed_seconds), max_load_seconds))
is_ok = False
else:
print("Page load took: %s seconds." % ("{:.2f}".format(elapsed_seconds)))
all_warnings = driver.get_log('browser')
critical_errors = []
for warning in all_warnings:
if warning['level'] == 'SEVERE':
has_error = True
for ignore_err in IGNORE_ERROR_LIST:
if ignore_err in warning['message']:
has_error = False
break
if has_error is True:
critical_errors.append(warning)
if len(critical_errors) != 0:
print("ERROR: severe errors have happened when loading the page. Details:\n\t%s" \
% "\n\t".join([str(error) for error in critical_errors]))
is_ok = False
save_screenshot_filepath = "%s/%s-%s.png" % \
(screenshot_dir, datetime.now().strftime('%Y-%m-%d_%H%M%S'), \
page_url.rstrip("/").split("/")[-1])
if should_save_screenshot is True:
print("Save screenshot to %s" % (save_screenshot_filepath))
driver.get_screenshot_as_file(save_screenshot_filepath)
except Exception as e:
print("ERROR: get exception: %s" % (e))
is_ok = False
finally:
driver.close()
# quit session
driver.quit()
return is_ok
selenium_load_page.py 文件源码
python
阅读 19
收藏 0
点赞 0
评论 0
评论列表
文章目录