2013-05-03 45 views
0

我的程序在遇到確認框時失敗。我需要點擊確認框才能繼續。我無法挖掘到它的Html(使用螢火蟲)或其他。有人請讓我知道如何處理這種情況? 即使這樣事先沒有工作使用硒點擊瀏覽器確認框

enter code here 
DesiredCapabilities capabilities; 
capabilities = new DesiredCapabilities(); 
capabilities.setJavascriptEnabled(true); 
capabilities.setCapability("takesScreenshot", false); 
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, 
      "/usr/local/bin/phantomjs"); 
WebDriver myTestDriver = new PhantomJSDriver(capabilities); 
myTestDriver.manage().window().maximize(); 
myTestDriver.findElement(By.xpath("//input[@value = 'confirm']")).click(); 
try { 
Thread.sleep(2000L); 
} catch (InterruptedException e) { 
    e.printStackTrace(); 
} 
Alert javascriptconfirm = myTestDriver.switchTo().alert(); 
javascriptconfirm.accept(); 

Selenium Web Driver : Handle Confirm Box using Java

感謝

回答

1

幻影目前不支持的警報,並確認開箱對話框(見here)。

直到幻影& Ghostdriver實現原生支持,解決方法是注入JavaScript來處理警報或確認自己。

這裏是C#代碼做一個片段,假設要模擬用戶在確認對話框中單擊「確定」:

string script = "window.confirm = function(message) { lastConfirmationMessage = message; return true; }"; 
IJavaScriptExecutor executor = (IJavaScriptExecutor) Driver; 
executor.ExecuteScript(script); 

然後,您可以執行其他JavaScript檢索「lastConfirmationMessage」如果你想斷言文本如預期。