2016-05-13 48 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?有沒有類似的東西? –