【问题标题】:How to get Watir to return actual HTML when site redirects?网站重定向时如何让 Watir 返回实际的 HTML?
【发布时间】:2010-10-21 02:23:10
【问题描述】:

当我读出 Watir 返回的 HTML 时,它给了我一个页面,指导我通过我的 Mac 或 PC 返回浏览器。似乎我被通过 Watir 提供的用户代理重定向。我以为我在用 Watir 驱动浏览器,但事实并非如此。

ie = Watir::IE.new
ie.goto "http://www.apple.com/safari/download"

ie.checkbox(:name, "21.1.9.12.3.1.3.0").clear

返回 UnkownObjectException。与尝试单击提交按钮相同。

使用 firebug 我可以很好地找到复选框,这就是我找到 :name 的方式。所以接下来我将 Watir 的 HTML 输出重定向到一个文件中进行检查,

myfile = File.new("safaridebug.html", "w+")
myfile.puts ie.html
myfile.close

浏览 safridebug.html 时,我注意到我在与 Web 浏览器不同的页面上。是否有某种方法可以让我获得 Web 浏览器中存在的实际 HTML,也许是用户代理欺骗?谢谢。

系统规格: 运行 Win XP SP2 的虚拟机, 红宝石 1.8.7, IE 8

【问题讨论】:

    标签: watir


    【解决方案1】:

    在这种情况下,Watir 工作正常。 Watir 没有使用特殊的用户代理或任何东西,因为使用的是普通的旧 IE,而且它的用户代理当然是由 IE 本身发送的。

    您无法使用 Watir 或 HTML 找到复选框的原因是该复选框位于框架中 :) 在该 html 中查找框架标记,您就可以理解为什么之前无法找到它。

    您可以改为从框架中访问它:

    b.frame(:id, "download-frame").checkbox(:name, "21.1.9.12.3.1.3.0").clear
    

    如果您在尝试访问帧时遇到拒绝访问错误,请阅读http://wiki.openqa.org/display/WTR/Frames 处的说明

    【讨论】:

    • 感谢您的回复和帮助!存在拒绝访问错误,但我可以解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多