我尝试在脚本下面编写代码,然后单击“确定”按钮完成脚本但是无法执行此操作。
IAlert alert = driver.SwitchTo().Alert();
alert.Accept();
我做错了什么,纠正我。
答案 0 :(得分:1)
JavascriptExecutor应该适合你。在点击调用警报的事件之前,请务必执行它。
C#代码
IWebDriver driver; // assume assigned elsewhere
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("window.confirm = function(msg) { return true; }");
Java代码
((JavascriptExecutor) driver).executeScript("window.confirm = function(msg) { return true; }");
注意: - 点击调用警报确认框的事件后不要使用它。默认情况下,上面的代码将确认框设置为true表示您接受/单击该页面上所有确认框上的确定(如果被调用)
希望它会对你有所帮助:)。
答案 1 :(得分:1)
我找到了一个优秀的nuget包AutoItX.Dotnet,它将处理chrome中的弹出窗口。 链接到nuget包 - https://www.nuget.org/packages/AutoItX.Dotnet/
请使用以下代码作为参考
//This code snippet will fix your specific issue
AutoItX.WinWait("Untitled - Google Chrome", "", 2);
AutoItX.WinActivate("Untitled - Google Chrome");
AutoItX.Send("{Enter}");
//Use code below to switch between buttons/text boxes within the popup
//And send text to text boxes within the popup
AutoItX.Send("{TAB}");
AutoItX.Send("HelloWorld");
您可能需要进一步测试以查看需要传递哪些密钥才能使此代码与您希望与之交互的每个特定弹出窗口无缝地工作。