2015-05-18 164 views
0

我使用硒來A/B測試我的網頁,但不知何故我沒有得到我應該的不同的經驗。 我嘗試刪除Cookie使用使用機器人類刪除瀏覽器歷史記錄

driver.manage().deleteAllCookies() ; 

但這似乎並不奏效。

圍繞我的一個想法是使用Robot.java並使用按鍵模擬瀏覽器歷史記錄刪除。下面是代碼:

public static void main(String args[]) { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://booking.com"); 
    Keyboard keyboard = ((RemoteWebDriver) driver).getKeyboard(); 
    keyboard.pressKey(Keys.COMMAND); 
    keyboard.pressKey(Keys.SHIFT); 
    keyboard.pressKey(Keys.DELETE); 
    keyboard.releaseKey(Keys.DELETE); 
    keyboard.releaseKey(Keys.SHIFT); 
    keyboard.releaseKey(Keys.COMMAND); 
    try { 
     Thread.sleep(5000); 
    Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_ENTER); 
    robot.keyRelease(KeyEvent.VK_ENTER); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (AWTException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    keyboard.pressKey(Keys.ENTER); 
    keyboard.releaseKey(Keys.ENTER); 
    Alert alert = driver.switchTo().alert(); 
    alert.accept(); 
    try { 
     Thread.sleep(2000); 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println("done clering history"); 
} 

這打開了歷史的對話中我的Firefox瀏覽器,但不按回車鍵進行刪除,並仍停留。應該做什麼來完成這項任務?除了Robot之外,還有其他方法可以實現嗎?請建議。

注意:我使用Mac並沒有找到AutoIt的替代品。

+0

你嘗試過這樣的:'driver.manage()deleteAllCookies()' –

+0

哦,是的。這並不會刪除歷史記錄。編輯了這個問題。 –

回答

0

讓我給你使用Windows操作系統和Firefox瀏覽器的答案。遵循與其他操作系統相同的邏輯

在Windows中,FF將歷史記錄存儲在%APPDATA%\ Mozilla \ Firefox \ Profiles文件夾下名爲places.sqlite的文件中。嘗試在關閉瀏覽器後刪除它。

Trying Robot將引入鼠標點擊位置的不確定性,也是一個漫長的過程。

編寫一個小的Java實用程序(或您擁有的任何語言),只需清理目錄。

virender http://toolsqa.com

+0

但是如何刪除通過Selenium打開的Firefox配置文件的歷史記錄,因爲硒使用默認的新配置文件? –

+0

%APPDATA%\ Mozilla \ Firefox \ Profiles文件夾包含所有配置文件,每個配置文件都有其歷史記錄和緩存 – virusrocks

0

可以使用SIKULI,而不是AutoIt的。

Sikuli自動化您在屏幕上看到的任何內容。它使用圖像識別來識別和控制GUI組件。當不能輕鬆訪問GUI的內部或源代碼時非常有用。

希望這有助於你