欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-14 11:51:04
...
这次尝试主要目的是测试在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窗口控件的方式异步操作来搞了。