Selenium WebDriver 2.53.1.1
Visual Studio 2015
C#
我正在测试的应用程序有弹出警报窗口,我可以使用以下代码处理而没有问题。
然而,我遇到了一个新问题。我的一些网页元素无法找到,因此我必须运行JavaScript来执行该网页元素(请参见下面的代码处理网页元素)。
问题在于js.ExecuteScript代码行运行后立即弹出了一个弹窗,并且我的Alert().Accept()代码行在此之后从未触发,因此程序就停在了那里。我在调试中逐行运行了这个代码,但是一旦我执行js.ExecuteScript代码行,就无法跳转到下一行。有什么建议如何处理这个问题吗?
更新:在我的代码(js.ExecuteScript)的这一点上,一旦执行了这行代码,我就看到了这个:
。
一旦此弹出窗口显示,我的Selenium代码就不会继续进入try catch语句处理警报。
最新更新截至9/9:
我尝试了两种方式处理警报
但是我的Selenium代码在弹出窗口触发时停止执行。
我正在测试的应用程序有弹出警报窗口,我可以使用以下代码处理而没有问题。
ts.getDriver().SwitchTo().Alert().Accept();
然而,我遇到了一个新问题。我的一些网页元素无法找到,因此我必须运行JavaScript来执行该网页元素(请参见下面的代码处理网页元素)。
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代码行,就无法跳转到下一行。有什么建议如何处理这个问题吗?
更新:在我的代码(js.ExecuteScript)的这一点上,一旦执行了这行代码,我就看到了这个:
![enter image description here](https://istack.dev59.com/jM1m1.webp)
最新更新截至9/9:
我尝试了两种方式处理警报
![enter image description here](https://istack.dev59.com/cnBPG.webp)
![enter image description here](https://istack.dev59.com/72iHx.webp)
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;}");