selenium_load_page.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:chef_community_cookbooks 作者: DennyZhang 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号