我有同樣的問題,由此我C#測試拋出這個錯誤 - 「OpenQA.Selenium.UnhandledAlertException:意外警告開放:{警報文本:你確定嗎?}」每個有瀏覽器生成的預警時間和測試立即生成警報。
在我的測試中,當我嘗試刪除或編輯測試應用程序中的某些值時,會生成警報。所以,我通過寫這段代碼解決了這個問題接受的警報;
public void ClickAcceptOnJsAlert()
{
var js = driver as IJavaScriptExecutor;
if (js != null)
{
js.ExecuteScript("window.alert = function(){}");
js.ExecuteScript("window.confirm = function(){return true;}");
}
}
而這段代碼拒絕警報;
public void ClickDismissOnJsAlert()
{
var js = driver as IJavaScriptExecutor;
if (js != null)
{
js.ExecuteScript("window.alert = function(){}");
js.ExecuteScript("window.confirm = function(){return false;}");
}
}
但是,要使用這段代碼,您需要通過干預來預測警報;例如,如果點擊特定的元素生成警報,我這樣做是爲了接受警報;
ClickAcceptOnJsAlert();
element.Click();
或以下來擺脫警報;
ClickDismissOnJsAlert();
element.Click()
這是我爲解決這個問題所做的工作,我希望它也適用於您。