如何在网站重定向时让Watir返回实际的HTML?

1 watir

当我读出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
Run Code Online (Sandbox Code Playgroud)

它返回一个UnkownObjectException.与尝试单击"提交"按钮相同.

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

myfile = File.new("safaridebug.html", "w+")
myfile.puts ie.html
myfile.close
Run Code Online (Sandbox Code Playgroud)

通过safaridebug.html查看我注意到我在与Web浏览器不同的页面上.在watir中有什么我可以获得我的网络浏览器中存在的实际HTML,也许是用户代理欺骗?谢谢.

系统规格:运行Win XP SP2的VM,ruby 1.8.7,IE 8

Jar*_*man 5

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

你找不到Watir或HTML的复选框的原因是复选框在框架中:)在那个html中寻找一个框架标签你可以理解为什么你以前找不到它.

您可以从框架中访问它:

b.frame(:id, "download-frame").checkbox(:name, "21.1.9.12.3.1.3.0").clear
Run Code Online (Sandbox Code Playgroud)

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