【问题标题】:Selenium RC is not opening new IE window rather throwing javascript errorSelenium RC 没有打开新的 IE 窗口,而是抛出 javascript 错误
【发布时间】:2011-11-08 09:06:31
【问题描述】:

我正在使用 selenium RC-Java-Eclipse 自动化我的项目,尽管我是新手。 我的应用程序中有 2 个选项卡,一个用于输入详细信息并保存它,第二个将打开一个新窗口来执行某些任务。 我在 iexplore 中运行我的 selenium RC 代码。 当 selenium 单击第二个选项卡时,会显示 javascript 错误,这应该会打开一个新窗口。

selenium.click("link=Link / Unlink");

Javascript 错误:网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1; 三叉戟/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) 时间戳:2011 年 11 月 8 日星期二 09:08:43 UTC

消息:对象不支持此属性或方法行:383 字符:2 代码:0 URI:http://172.20.160.136/scripts/common.js

我急于让它自动化....但它阻止我加载新窗口...请建议该怎么做。

【问题讨论】:

    标签: javascript selenium-rc


    【解决方案1】:

    我有一个类似的情况,我会点击一个按钮打开一个新的弹出窗口,在那里做一些事情等等。我就是这样做的,

    selenium.click("//td[@id='openNew']");
    
    selenium.waitForPopUp("", DEFAULT_TIMEOUT);
    String[] windowNames = selenium.getAllWindowNames();
    assertEquals(2, windowNames.length);
    selenium.selectWindow(windowNames[1]);
    

    也许您没有等待窗口打开,然后没有选择可能有一些 js 链接的正确窗口..您的控件仍在原来的窗口上,为什么会出错..

    【讨论】:

    • 只是添加,DEFAULT_TIMEOUT 只是我在文件中定义的一个常量,以毫秒为单位指定一个值,然后我断言将有 2 个窗口,即 1 个主窗口(索引 0)和 1 popup(索引 1),然后我选择窗口索引 1,这是我的弹出窗口。
    • 谢谢阿什利。我只是直接使用了你的代码,除了 selenium.click ......但同样的结果再次 - 单击选项卡时没有打开新窗口!和主窗口状态栏中的 javascript 错误。DEFAULT_TIMEOUT="40000"。我需要做任何操作吗...请告诉我如何克服它..
    • @user1035170 - 你还遇到同样的错误吗?我确信您验证了应用程序在直接访问时运行良好。如果没有看到您的代码,我很难说出来。让我们看看.. 哪个窗口链接到 common.js?主要还是弹出窗口?如果在主页上,那么您可能在页面末尾有指向 js 文件的链接,并且您在页面完全加载之前单击该链接。如果是这种情况,那么您可以尝试在单击链接之前放置 waitForPageToLoad。就像我说的很难在不查看您的代码的情况下给出解决方案。
    • 我猜 common.js 链接到弹出窗口。 bcz from viewPageSource 我得到了下面的代码,它显示单击选项卡会触发 javascript 函数,该函数应该加载新的弹出窗口。
    • 链接/取消链接
    • ....能不能从这个线索中弄清楚...否则我必须联系开发者关于common.js的链接...跨度>
  • 是的,您需要检查的第一件事是应用程序是否像我在上一条评论中提到的那样独立运行。在没有 selenium 的情况下访问同一页面,即实时应用程序。如果这不起作用,则开发团队需要修复它。如果可行,我们将继续调查。
  • 【解决方案2】:

    您的应用程序已损坏。 scripts/common.js不是 Selenium 的一部分。将错误作为错误报告给应用程序开发人员。

    【讨论】:

    • 如果在手动操作时发现错误,我可以记录它。但是当手动单击选项卡并打开我想要的弹出窗口时,它工作正常。我在处理 selenium 并尝试仅通过 selenium 加载弹出窗口时遇到这个 javascript 错误......所以祝你好运!
    【解决方案3】:

    检查是否有任何与标签点击相关的事件,例如 onclick 事件。如果是这样,请尝试使用 selenium.fireevent("identifier","eventname") 触发该事件。还尝试使用 xpath 一次单击选项卡。可能还有其他同名元素。

    【讨论】:

    • 是的。我从 ViewPageSource 中找到了该选项卡的以下 html 代码。
    • 链接/取消链接
    • ...我们有与标签点击相关的onclick事件。让我试试 selenium.fireevent("link=Link / Unlink","onClick")..
  • 我用 XPath 试过了,效果不错。我写了 selenium.fireEvent("link=Link / Unlink","onclick") 并运行 selenium。它在此命令中引发错误,错误消息是:无效参数。我哪里出错了???
  • 事件名称是 click 而不是 onclick。
  • 使用 eventname click 再次发生同样的事情,即 javascript 错误。没有任何解决方案,它真的是在吃脑 :) 帮助!
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签