[Selenium2.0]对onload弹出框的尝试

这次尝试主要目的是测试在onload时弹出框,是否会block测试脚本的运行。

先自己写一段测试页面:
  # myapp.rb
  require 'sinatra'

  get '/' do
    '
   <html>
<head>
<script type="text/javascript">
function load()
{
alert("123")
}
</script>
</head>

<body onload="load()">
</body>

</html>
 
    '
  end

在sinatra服务器上运行不会被弹文件不安全的弹出框。不然一个本地文件也搞定了。然后访问http://localhost:4567/,看下效果,确定在onload时弹窗了。


开始写测试代码:(版本:selenium 2.0 webdriver, ruby的implementation )

        require "selenium-webdriver"

        url = "http://localhost:4567/"
        driver = Selenium::WebDriver.for :firefox
        driver.navigate.to(url)
        sleep 2
        asert = driver.switch_to.alert
        asert.accept

看到的效果是页面正常加载,弹出框正常显示,并且点击确认成功关闭。

然后,改用 Selenium::WebDriver.for :ie 和 :chrome

得出以下结论:
firefox: 页面正常加载,弹出框正常显示,并且点击确认成功关闭。
ie: 页面正常加载,弹出框正常显示,但会卡在driver.navigate.to(url)方法上,一直等待页面加载完成。
chrome: 同ie

对于上面两种卡住不能操作的,是在webdriver的navigate增加了wait导致的。解决就通过点击windows窗口控件的方式异步操作来搞了。

你可能感兴趣的:(chrome,IE,Ruby,firefox,Sinatra)