2017-04-17 21 views
1

使用Selenium和Java運行測試時,每當我登錄到一個站點時,我都會看到這個令人討厭的彈出窗口「你想讓Chrome保存你的密碼嗎?」。這個表格阻止了Selenium正在尋找的東西,所以我的元素不會被發現,並且測試失敗。啓動chrome而不要求保存密碼窗口

我讀過你可以進入高級設置並取消選中框。但是,它仍然顯示該窗口彈出。我猜這是因爲我們每次都啓動一個新的Chrome,所以Chrome不記得以前的選項。 Chrome正在通過Selenium和Java啓動。

有什麼方法可以在沒有密碼窗口的情況下啓動Chrome嗎?也許是旗子或什麼的?

我使用的是Chrome 57.有人購買了Chrome 55並讓我使用它,但Chrome會自動更新,因此它重置爲57.我認爲這不重要嗎?

回答

1

要啓動瀏覽器禁用密碼管理器,你需要:

  1. 下載,然後從this link使用最新的Chrome驅動程序。

  2. 添加偏好&選項,你的代碼如下:

    System.setProperty("webdriver.chrome.driver", "C:\\SeleniumUtilities\\BrowserDrivers\\chromedriver.exe"); 
    Map<String, Object> prefs = new HashMap<String, Object>(); 
    prefs.put("profile.default_content_setting_values.notifications", 2); 
    prefs.put("credentials_enable_service", false); 
    prefs.put("profile.password_manager_enabled", false); 
    ChromeOptions options = new ChromeOptions(); 
    options.setExperimentalOption("prefs", prefs); 
    DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
    capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
    WebDriver driver = new ChromeDriver(capabilities); 
    driver.get("http:\\gmail.com"); 
    

讓我知道如果這能幫助你。

+0

感謝。 IO看不到前綴如何進入crhome命令? – Tony

+0

@Tony檢查我的更新代碼,並讓我知道如果這對你有用。謝謝 – DebanjanB

+0

立即嘗試。不知道他們會讓我添加所有這些選項。我再看看吧。謝謝 – Tony

1

添加以下優惠:

Map<String, Object> prefs = new HashMap<String, Object>(); 
prefs.put("credentials_enable_service", false); 
prefs.put("password_manager_enabled", false); 
options.setExperimentalOption("prefs", prefs); 
+0

您將無法使用「選項」對象,直到您首先創建它爲止。 – DebanjanB

+1

是的,你是對的。 –