2013-07-21 58 views
2

以前我一直在使用chrome自動刷新插件。但是,現在我的代碼有多個ChromeDriver實例打開和關閉,我無法使用自動刷新。另外,在新電腦上安裝自動刷新是一件很麻煩的事情。如何用硒自動刷新chromeDriver?

有什麼辦法來刷新驅動器(可模擬F5說每15秒,如果駕駛員不改變靜止不動)與硒類似於谷歌自動刷新?

回答

6

刷新是一個內置的命令。

driver = webdriver.Chrome() 
driver.get("http://www.google.com") 
driver.refresh() 

如果你不具備鉻司機就可以在這裏找到: https://code.google.com/p/chromedriver/downloads/list

把二進制文件相同的文件夾,你正在寫的Python腳本。 (或將其添加到路徑或什麼的,這裏更多的信息:https://code.google.com/p/selenium/wiki/ChromeDriver

編輯:

如果你想不斷刷新10秒什麼的,只是包裝與循環和延遲刷新線。例如:

import time 
while(True): 
    driver.refresh() 
    time.sleep(refresh_time_in_seconds) 

如果您只想刷新頁面沒有改變的情況,請跟蹤您所在的頁面。 driver.current_url是當前頁面的網址。所以把它放在一起它將是:

import time 
refresh_time_in_seconds = 15 
driver = webdriver.Chrome() 
driver.get("http://www.google.com") 
url = driver.current_url 
while(True): 
    if url == driver.current_url: 
     driver.refresh() 
    url = driver.current_url 
    time.sleep(refresh_time_in_seconds) 
+0

非常感謝你+1。但是,如果網頁沒有改變其網址,即如何保持靜止,我怎樣才能讓它每隔15秒自動更新一次? – Buras

+0

我更新了我的答案,希望現在它更有用。 :) –

3

那麼有兩種方法來做到這一點。 1.我們可以使用刷新方法

driver.get( 「一些網站URL」); driver.navigate()。refresh();

  1. 我們可以使用動作類和模擬F5按

    操作行爲=新的操作(駕駛); act.SendKeys(Keys.F5).perform();

+0

非常感謝你+1。但是,如果網頁沒有改變它的網址,我怎麼能每15秒自動更新一次,即保持不動。 – Buras

+0

嗯,你希望這樣做多少次?你會只在一個頁面上工作嗎? – Vinay

1

如果你寫了必須一樣,如果你有開/每次刷新一個新的瀏覽器會話,你可以使用的方法與之前的註釋來運行單元測試:

@Before 
public void refreshPage() { 
    driver.navigate().refresh(); 
} 

如果所有測試是單獨成功的(綠色),但一起失敗,原因可能是您需要等待頁面上可用的資源,因此您還需要處理它,並將超時設置爲如下形式:

public WebElement getSaveButton() { 
    return findDynamicElementByXPath(By.xpath("//*[@id=\"form:btnSave\"]"), 320); 
} 

320是很長一段時間,但你必須確保你有足夠的時間來獲得測試所需的所有內容。