2015-10-19 43 views
2

如果我的問題聽起來很主要,我很抱歉,我在QA和Selenium方面很新。在Selenium的Chrome中啓用彈出窗口

我正在使用Java和Selenium編寫測試,在我的測試步驟中,當我點擊一個按鈕時,它應該打開另一個窗口,但Chrome阻止彈出窗口,我可以啓用Selenium彈出窗口嗎?

+0

你對自己的Chrome個人資料在運行此?您是否可以按照以下說明禁用它們:https://support.google.com/chrome/answer/95472?hl = zh_CN? –

+0

我不能手動完成它,它應該從我的代碼內部處理 – LoveLovelyJava

+1

我已經編寫了這段代碼,但我不確定它是否有效。但你可以試試看。 http://pastebin.com/5mqr9AX1 – JRodDynamite

回答

6

那麼,您需要使用自定義配置來初始化ChromeDriver,該配置將禁用該標誌來阻止彈出窗口。從這個site,它的命令行開關是disable-popup-blocking。因此,使用ChromeOptionsDesiredCapabilities,使用DesiredCapabilities.setCapability()函數添加所需的配置。

ChromeOptions options = new ChromeOptions(); 
options.addArguments("test-type"); 
options.addArguments("disable-popup-blocking"); 
DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
WebDriver driver = new ChromeDriver(capabilities); 

編輯:剛剛發現這個site相同的解決方案。

3

還有另一個選項來啓用彈出窗口。因爲有時您的公司可能會阻止您以管理員模式訪問任何應用程序。如果上述方法失效,您可以使用以下代碼啓用彈出窗口。

WebDriver driver = new ChromeDriver(options); 
driver.manage().window().maximize(); 
driver.get("chrome://settings/content"); 
Thread.sleep(4000); 
driver.switchTo().frame("settings"); 
Thread.sleep(2000); 
driver.findElement(By.xpath("//input[@type='radio' and @name='popups']")).click(); 
Thread.sleep(4000); 
driver.findElement(By.id("content-settings-overlay-confirm")); 
Thread.sleep(4000); 
  • 使用開始測試之前,上面的代碼。
相關問題