当我读出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
通过safaridebug.html查看我注意到我在与Web浏览器不同的页面上。在watir中有什么我可以获得我的网络浏览器中存在的实际HTML,也许是用户代理欺骗?感谢。
系统规格: 运行Win XP SP2的VM, 红宝石1.8.7, IE 8
答案 0 :(得分:5)
在这种情况下,Watir正常工作。没有特殊的用户代理或Watir使用的任何东西,因为使用普通的旧IE并且它的用户代理当然是由IE本身发送的。
你无法找到Watir或HTML复选框的原因是复选框位于一个框架中:)在该html中查找一个框架标签,你就可以理解为什么你以前找不到它了。< / p>
您可以从框架中访问它:
b.frame(:id, "download-frame").checkbox(:name, "21.1.9.12.3.1.3.0").clear
如果您在尝试访问框架时遇到访问被拒绝错误,请阅读http://wiki.openqa.org/display/WTR/Frames
上的说明