2016-05-13 47 views
0

我真的不知道这件事,所以我希望你给我一些建议,如果你可以。硒蟒蛇加载页面和脚本(Firefox和IE)

通常当我使用Selenium时,我尝试搜索我感兴趣的元素,但现在我正在考虑开发某种性能测试,以便检查特定网页(html,脚本等)需要多少时间。 ..) 加载。

你有一些想法如何知道加载时间的HTML,脚本等没有搜索页面的特定元素?

PS我使用IE或Firefox

+0

您是否事先知道底层javascript框架是什么? –

+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) 
+0

非常感谢,非常感谢;)我怎样才能检查完成加载所有的HTML?有没有类似的东西? –