【问题标题】:Watir::IE.attach(:title,/x/) not working correctly on Win 7 IE8Watir::IE.attach(:title,/x/) 在 Win 7 IE8 上无法正常工作
【发布时间】:2012-11-15 06:11:24
【问题描述】:

系统: 窗口 7 互联网浏览器 8 红宝石 1.8 瓦提尔 1.6.5

如果我手动打开浏览器窗口,然后访问导致第二个浏览器窗口打开的站点,然后使用 Watir::IE.attach 方法找到第二个浏览器窗口,一切正常。问题是当我使用命令 Watir::IE.new 打开第一个 Internet Explorer 窗口,然后访问导致第二个浏览器窗口打开的站点时。当我使用 Watir::IE.attach 查找第二个浏览器窗口时,我现在得到: Watir::Exception::NoMatchingWindowFoundException: 无法定位标题为 (?-mix:x) 的窗口 来自 /ie-class.rb:297:in 'attach_browser_window' 来自 /ie-class.rb:149:in '_attach_init' 来自 /ie-class.rb:143:in 'attach' 来自 (irb):15

有没有人遇到过这个问题并制定了解决方案?

我做了更多调查,我正在以管理权限运行我的脚本,它以管理员身份打开 IE8,然后尝试打开一个新窗口。我尝试以管理员身份手动打开 IE8,然后从浏览器打开一个新窗口,然后使用 watir 运行附加命令,我确实得到了与使用 watir 创建初始窗口相同的错误。

我确实希望能够以管理员身份运行我的脚本。

我尝试过手动执行 watir 命令并在脚本中运行:

=======================

需要“红宝石”

需要'watir'

ie = Watir::IE.start("http://www.quackit.com/html/codes/html_open_link_in_new_window.cfm")

ie.link(:text,"HTML 帮助").click

ie2 = Watir::IE.attach(:title,/Help/)

=======================

【问题讨论】:

  • 您确定您正在手动执行相同的操作并使用 Watir 脚本吗?您可以发布您的脚本和窗口标题吗?我更喜欢这个网站来获得 Watir 支持,但您会在 groups.google.com/group/watir-general 找到更多 Watir 人
  • 你能在 Windows XP 上试试 IE8,看看这是否与 Windows 7 有关?
  • 我在带有 IE7 的 Windows XP 上试了一下,它工作正常。
  • 我在带有 IE 8(32 位)的 Windows XP 上试了一下,它工作正常。
  • 我在 Window 2003 Server 上用 IE8(64 位)试了一下,它工作正常。

标签: windows internet-explorer windows-7 internet-explorer-8 watir


【解决方案1】:

现在 watir 假定您要附加到的窗口称为“Internet Explorer”。我认为 IE8 的名称可能与此不同。您可以在 ie-class.rb 的第 238 行更改此设置。

布雷特

【讨论】:

  • 查看了ie-class.rb中WIN32OLE.new(Shell.Application).windows进入的窗口,新的弹窗根本没有列出来。
  • 我的建议不正确。我试图否决它,但我不能为我自己的帖子投票。
  • 发表评论(就像您所做的那样)应该足以为将来的读者提供足够的信息。
【解决方案2】:

关闭用户帐户控制(设置为最低设置)。转到控制面板->系统和安全->操作中心->更改用户帐户控制设置,然后将滑块拉到最低设置。

我遇到了同样的问题,这已经为我解决了。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。我已经对其进行了更多调查,问题似乎是当已经存在以管理员权限打开的 IE8 实例时,Watir 不会看到任何其他以管理员身份运行的 IE8 窗口,包括它会自动打开。

    我通过这样做来实现这一点:

    Watir::IE.each do |window|
    
      puts window.title
    
    end
    

    我尝试过的案例是:

    1. 以前没有打开的 IE 窗口导致 watir 仅列出新浏览器,而不是它创建的浏览器(我想附加到的浏览器)。
    2. 一个或多个以前打开的非管理员 IE 窗口会列出预先存在的浏览器实例及其自身,但同样不会列出它生成的新窗口。
    3. 以管理员身份运行的一个或多个以前打开的 IE 窗口略有不同,因为它会列出所有预先存在的窗口,但不会列出自身,也不会列出它创建的任何其他窗口。

    这使我得出结论,Watir 不会在其列表中保留在现有管理员特权 IE8 打开后创建的任何管理员特权 IE8 实例。

    我现在使用的解决方案是不以管理员身份运行我的脚本。我意识到在某些情况下这并不是一个真正的选择,但这是迄今为止我能找到的最好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      相关资源
      最近更新 更多