2014-09-23 86 views
1

我的程序打開某網頁上使用刷新標籤

webbrowser.open(url) 

怎麼可能重新加載包含URL幾次的標籤? 我可以使用sleep來設置必須重新加載之前必須等待的時間限制。 但是,如何在此之後刷新標籤? (在新標籤頁中打開它。)

+3

Webbrowser可能不是最好的模塊 - 你可能會研究[selenium和webdriver](http://selenium-python.readthedocs.org/en/latest/getting-started.html),它更強大(儘管你可能需要安裝一些額外的東西)。 – 2014-09-23 16:54:50

+0

硒爲我工作。謝謝! – 2014-09-28 14:53:09

回答

0

編輯:下面我的舊的答案,因爲它顯示在文檔中的不確定性,我不刪除它,並有可能作爲一個學習經驗的人。

如果您閱讀文檔,它們會使其聽起來像是可能的。然而,這是不可能做到這一點,更進一步,它似乎不管你給「新」的選項總是在新標籤中打開。也許這種行爲是特定於我的系統或瀏覽器(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) 

^^^這並不實際工作^^^

+0

可以說,標籤打開,然後用戶切換到一個新的標籤,而進程正在等待。這會刷新正確的選項卡,還是覆蓋用戶所在的選項卡? – 2014-09-23 17:01:46

+0

我不知道,我從來沒有用過這個模塊,但這不在這個問題的範圍之內。爲什麼downvote? – LukeP 2014-09-23 17:04:00

+0

有人可以解釋這個答案有什麼問題嗎?我不明白爲什麼它值得投票。 – LukeP 2014-09-23 17:06:03

1

我不認爲這是可能的爲此實現一個純Python的解決方案,適用於不同的瀏覽器。我想到的解決方案是使用JavaScript。有趣的是,這個想法是創建一個html文件,該文件具有一個帶有你想要的url的iframe,並且具有定期重新載入iframe的javascript。然後使用webbrowser模塊打開該文件。

這可能聽起來很醜陋,但這可能是考慮到瀏覽器安全問題的唯一解決方案。

*如果您對這個想法感興趣,我可以幫助您爲此編寫代碼。 希望這有助於。