2014-07-15 46 views
0

在我的Selenium測試中,我需要在加載所有Ajax對象後簡單地保存網頁內容。我已經找到答案如何等待Ajax加載,但是沒有可用於通過Ajax內容保存整個頁面的工作解決方案。這裏是來源的例子:硒。獲取包含Ajax對象的動態頁面的內容

with contextlib.closing(webdriver.Chrome()) as driver: 
    driver.get(url) # Load page 

    # Just as an example, wait manually until all Ajax objects are loaded. 
    raw_input("Done?") 

    # Save whole page 
    text = driver.page_source 
    # text contains original page data, no Ajax elements 

我假設我需要告訴網絡驅動程序檢查瀏覽器和更新page_source屬性。有沒有API?如何保存包含Ajax對象的頁面?

編輯:謝謝你的回覆!在用樣本Ajax網站重新測試之後,我發現上面的代碼有效。問題在於該網站使用框架,因此我需要切換到適當的框架。這是另一個回帖後回答:What does #document mean?

回答

0

page_source應該像現在一樣返回頁面的HTML,幷包括任何由AJAX生成的HTML頁面加載頁面。您不應該調用不同的方法來獲取AJAX生成的內容。

有沒有公共的鏈接到我們可以看到的網站?

0

打開後,頁面刷新頁面,然後得到源代碼

driver.refresh()

文本= driver.page_source