我的程序打開某網頁上使用刷新標籤
webbrowser.open(url)
怎麼可能重新加載包含URL幾次的標籤? 我可以使用sleep
來設置必須重新加載之前必須等待的時間限制。 但是,如何在此之後刷新標籤? (在新標籤頁中打開它。)
我的程序打開某網頁上使用刷新標籤
webbrowser.open(url)
怎麼可能重新加載包含URL幾次的標籤? 我可以使用sleep
來設置必須重新加載之前必須等待的時間限制。 但是,如何在此之後刷新標籤? (在新標籤頁中打開它。)
編輯:下面我的舊的答案,因爲它顯示在文檔中的不確定性,我不刪除它,並有可能作爲一個學習經驗的人。
如果您閱讀文檔,它們會使其聽起來像是可能的。然而,這是不可能做到這一點,更進一步,它似乎不管你給「新」的選項總是在新標籤中打開。也許這種行爲是特定於我的系統或瀏覽器(IE9),但我相信它更可能是該程序中的一個錯誤。
我進一步調查了一下,關於這一切都有疑問。你不能使用webbrowser或python內置的任何東西。
如果你安裝硒,你應該可以做你想做的。
我假設您無權訪問此網頁的源代碼,否則,您可以使用html進行刷新。如果您不想安裝硒並且沒有源代碼訪問權限,那麼您需要爲網頁製作一個包裝器,並使用HTML/JS來刷新包裝器。
the docs說:
webbrowser.open(URL,新= 0,autoraise = TRUE)使用默認瀏覽器
顯示網址。如果new爲0,則儘可能在相同的瀏覽器窗口中打開url。如果新值爲1,則儘可能打開新的瀏覽器窗口。如果新值爲2,則儘可能打開新的瀏覽器頁面(「選項卡」)。如果自動調整爲True,則儘可能提高窗口(請注意,在許多窗口管理器下,無論此變量的設置如何,都會發生這種情況)。
所以... 刷新頁面,這純粹是:
for i in range(refresh_limit):
time.sleep(wait_time)
webbrowser.open(url)
^^^這並不實際工作^^^
我不認爲這是可能的爲此實現一個純Python的解決方案,適用於不同的瀏覽器。我想到的解決方案是使用JavaScript。有趣的是,這個想法是創建一個html文件,該文件具有一個帶有你想要的url的iframe,並且具有定期重新載入iframe的javascript。然後使用webbrowser模塊打開該文件。
這可能聽起來很醜陋,但這可能是考慮到瀏覽器安全問題的唯一解決方案。
*如果您對這個想法感興趣,我可以幫助您爲此編寫代碼。 希望這有助於。
Webbrowser可能不是最好的模塊 - 你可能會研究[selenium和webdriver](http://selenium-python.readthedocs.org/en/latest/getting-started.html),它更強大(儘管你可能需要安裝一些額外的東西)。 – 2014-09-23 16:54:50
硒爲我工作。謝謝! – 2014-09-28 14:53:09