2013-08-23 57 views
0

比方說,我有一個標籤已經在瀏覽器中打開。它的網址是:網頁已經打開(源格式);只需要閱讀該文本,使用硒

view-source:http://www.google.com/webhp?source=search_app 

現在,它已經打開並顯示,我只是想讀這就是在客戶端窗口的文本。 (獲取上下文的頁面,或獲取其對象(而不是創建一個新的瀏覽器對象),或任何。然後只是閱讀頁面。)

Selenium中是否有任何方法,分裂,允許?謝謝你的幫助。

+0

爲什麼你使用硒,如果你只是想要來源?只需使用urllib或其他東西來獲取頁面,然後用美麗的湯或其他東西解析它。 –

+0

我嘗試使用urllib獲取它,但我需要維護當前正在使用的頁面的頁碼上下文,並且存在一堆JSON,__doPostBack障礙物,它們阻止我僅使用URL返回到哪裏我曾是。我真的需要閱讀我添加到瀏覽器頂部的選項卡的客戶端區域上的內容,然後在完成維護該過程的位置感知後退出該選項卡。 – user225626

回答

1

如果你問你是否可以附加到已經打開的瀏覽器,那麼我相信答案是「否」。

0

您可以直接使用Selenium獲取頁面的源代碼:WebDriver.getPageSource()

但是,如果您使用view-source:url瀏覽器將呈現一個html頁面,包括格式爲源。 Firefox例如正在包裝每條線<span id="lineX"></span>。而不是解析這只是使用getPageSource沒有view-source

請仔細閱讀getPageSource文檔:

獲取最後加載頁面的源代碼。如果頁面在加載後被修改(例如,通過Javascript),則不能保證返回的文本是修改頁面的文本。請查閱正在使用的特定驅動程序的文檔,以確定返回的文本是否反映了網頁的當前狀態或Web服務器上次發送的文本。返回的頁面源代表底層的DOM:不要期望以與從Web服務器發送的響應相同的方式對其進行格式化或轉義。把它看作藝術家的印象。

0

這是我用來做:

  1. 問硒打開瀏覽器
  2. 顯示彈出/消息窗口暫停執行
  3. 打開網址在瀏覽器中執行所有手動執行相關操作
  4. 完成後(即在目標頁面上),我在彈出窗口上單擊確定,然後代碼恢復,在瀏覽器中當前打開的目標頁面上提取/執行我們想要的任務。