【发布时间】:2017-01-16 19:36:00
【问题描述】:
Selenium WebDriver 2.53.1.1 视觉工作室 2015 C#
我正在测试的应用程序具有警报弹出窗口,我使用以下代码处理它没有问题
ts.getDriver().SwitchTo().Alert().Accept();
但是我遇到了一个新问题。我的一些 webelements 有不再被发现的问题,因此我必须运行 JavaScript 来执行 web 元素(请参阅下面的代码来处理 web 元素)
public void SelectHREFCID()
{
IJavaScriptExecutor js = ts.getDriver() as IJavaScriptExecutor;
js.ExecuteScript("arguments[0].click()",hrefCID);
try
{
ts.getDriver().SwitchTo().Alert().Accept();
}
catch (NoAlertPresentException)
{
// do nothing...
}// Have to use this to find the hyperlink!
}
唯一的问题是在 js.ExecuteScript 行运行后立即弹出显示和我的 Alert().Accept() 代码行在此之后永远不会触发,因此程序只是在弹出窗口时停止。我在调试中逐行运行,一旦执行 js.ExecuteScript 行,就无法进入下一行。有关如何处理此问题的任何建议?
,这行代码一执行我就看到了
一旦此弹出窗口显示 My Selenium Code does not continue into the try catch statement to handle the Alert
截至 9 月 9 日的最新更新
但是我的 selenium 代码在弹出窗口触发时停止执行
js.ExecuteScript("arguments[0].click().hrefCID);
**更新 09/12****
我更新了 window.alert,这解决了问题(确认)
IJavaScriptExecutor js = ts.getDriver() as IJavaScriptExecutor;
js.ExecuteScript("window.confirm = function(){return true;}");
js.ExecuteScript("arguments[0].click()",hrefCID);
// js.ExecuteScript("window.alert = function() { return true;}");
【问题讨论】:
-
不清楚你在问什么??
program just stops there with the pop up是什么意思??有什么异常还是别的什么?? -
抱歉有任何混淆。基本上,如果我在调用 Web.Element.Click 时使用 Alert().Accept() 它将执行这行代码。 (我肯定知道这一点 b/c 我的一些 web 元素在弹出窗口显示时工作正常,但是因为我正在通过 javascript 执行 web 元素操作,所以它从不尝试执行之后弹出的警报。我希望这能让更多感觉。
-
您的意思是 JavaScript 单击不会打开弹出窗口。对吧??
-
运行 javascript 代码后不会立即打开弹出窗口,但我的 Selenium 代码此时无法继续
-
更新了我上面的窗口警报声明,这解决了我的问题。谢谢@SaruabhGaur 如果您会回复答案,我会给您信用!再次感谢您!
标签: javascript c# selenium