Selenium Python加载页面和脚本(Firefox和IE)

时间:2016-05-13 23:01:21

标签: python performance selenium python-webbrowser

我真的不知道如此,所以如果可以,我希望你给我一些建议。

一般情况下,当我使用Selenium时,我会尝试搜索我感兴趣的元素,但现在我正在考虑开发某种性能测试,所以要检查一下特定网页需要花费多少时间(html,脚本等等)。 。)加载。

您是否知道如何在不搜索页面特定元素的情况下了解html,脚本等的加载时间?

PS我使用IE或Firefox

1 个答案:

答案 0 :(得分:1)

您可以检查基础javascript框架以查找活动连接。当没有活动连接时,您可以假设页面已完成加载。

然而,这要求您知道页面使用的框架,或者您必须系统地检查不同的框架,然后检查连接。

def get_js_framework(driver):
    frameworks = [
        'return jQuery.active',
        'return Ajax.activeRequestCount',
        'return dojo.io.XMLHTTPTransport.inFlight.length'
    ]

    for f in frameworks:
        try:
            driver.execute_script(f)
        except Exception:
            logging.debug("{0} didn't work, trying next js framework".format(f))
            continue
        else:
            return f
    else:
        return None


def load_page(driver, link):
    timeout = 5
    begin = time.time()

    driver.get(link)
    js = _get_js_framework(driver)

    if js:
        while driver.execute_script(js) and time.time() < begin + timeout:
            time.sleep(0.25)
    else:
        time.sleep(timeout)