Selenium WebDriver 2.53.1.1 Visual Studio 2015 C#
我正在测试的应用程序有Alert Pop Ups,我可以使用以下代码处理而没有问题
ts.getDriver().SwitchTo().Alert().Accept();
但是我遇到了一个新问题。我的一些小部件已经存在不再被发现的问题,因此我必须运行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()。在此之后,接受()代码行永远不会触发,因此程序只是在弹出窗口停止。我在调试中逐行运行,一旦执行js.ExecuteScript行,就无法进入下一行。关于如何处理这个的任何建议?
UPdate 此时在我的代码中(js.ExecuteScript))
,一旦执行了这行代码,我就会看到这个
此弹出窗口显示My Selenium Code不会继续进入try catch语句来处理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;}");
答案 0 :(得分:1)
我认为此警报会阻止代码执行,您应该在单击以使用js覆盖confirmBox
函数之前执行此脚本: -
js.ExecuteScript("window.confirm = function() { return true;}")
之后执行如下操作点击按钮: -
js.ExecuteScript("arguments[0].click()",hrefCID);