使用 Selenium 在页面 onload() 中生成的 JavaScript 警报的解决方法是什么?

发布于 2024-10-03 09:46:20 字数 1076 浏览 5 评论 0原文

我正在使用 Selenium RC (C#) 自动化表单页面。单击“提交”按钮后,我收到一条警报“记录编辑成功!”。此警报框的标题是“http://www.******.com 的页面显示: '。

但 Selenium 没有看到此警报。我无法解决这个问题。

这是我尝试过的:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.WaitForPageToLoad("30000");

结果:我收到以下错误:“Selenium.SeleniumException:30000ms后超时

然后我尝试:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.OpenWindow("", "The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

结果:打开了三个窗口(站点、警报和额外窗口) )。没有什么会被关闭。我收到以下错误:“Selenium.SeleniumException:30000ms 后超时

然后我尝试:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.SelectWindow("The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

结果:我收到以下错误:“无法找到标题为“页面位于 <”的窗口a href="http://www">http://www.*****.com 说:'"

有什么建议吗?请帮助克服这个障碍。

I am automating a form page using Selenium RC (C#). After I click 'Submit' button, I get an alert 'Records Edited Successfully!'. The title of this alert box is 'The page at http://www.******.com says:'.

But Selenium doesn't see this alert. And I can't work around it.

Here is what I've tried:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.WaitForPageToLoad("30000");

Result: I get the following error: "Selenium.SeleniumException : Timed out after 30000ms"

Then I tried:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.OpenWindow("", "The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

Result: Three windows are opened (site, alert and extra window). Nothing gets closed. I get the following error: "Selenium.SeleniumException : Timed out after 30000ms"

Then I tried:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.SelectWindow("The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

Result: I get the following error: "Could not find window with title 'The page at http://www.******.com says:'"

Any suggestions? Please help to overcome this obstacle.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

疯到世界奔溃 2024-10-10 09:46:20

显然,最简单的方法是使用脚本将alert()函数重新定义为不弹出对话框的函数。

((JavascriptExecutor) fDriver).executeScript(
  "window.alert = function(msg) { return true; }"
); 

Apparently the easiest way to do this is to use script to redefine the alert() function to something that doesn't popup a dialog.

((JavascriptExecutor) fDriver).executeScript(
  "window.alert = function(msg) { return true; }"
); 
嘦怹 2024-10-10 09:46:20

最后我找到了解决方法:

    selenium.Click("ctl00_Content_ctl00_btnSubmit");                        
    Thread.Sleep(5000);
    selenium.KeyDownNative("32");
    selenium.KeyUpNative("32");

祝大家一切顺利!

Finally I've found a workaround:

    selenium.Click("ctl00_Content_ctl00_btnSubmit");                        
    Thread.Sleep(5000);
    selenium.KeyDownNative("32");
    selenium.KeyUpNative("32");

Wish you all the best, everyone!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文