• Seleniumwebdriver系列教程(十)————使用jquery辅助进行测试


    Jquery是当下比较流行的1个js框架,通过使用webdriver的execute_script方法,我们可以将jquery库结合到自动化测试中去。

    结合jquery进行自动化测试的思想是这样的:首先将jquery的源码读到1个string中去,然后使用execute_script执行该string。执行完毕后我们就可以通过execute_script方法来调用jquery库了。

    下面的html代码中有一个隐藏的div,当鼠标移动到(mouseover)页面上名为Mouse Over Here的链接时,隐藏的div将会显示出来。

    <html>
        <head>
            <title>FireEvent</title>
            <style>
                .mo {color: blue;}
                .tips {display:none;border: 1px solid #ccc; background-color:#EFEFEF; 100px;height:100px}
            </style>
            <script>
                function show_tips(){
                    document.getElementById("t").style.display = "block";
                }
                function hide_tips(){
                    document.getElementById("t").style.display = "none";
                }
            </script>
        </head>
        <body>
            <a class = "mo" href = "#" onmouseover = "show_tips()" onmouseout = "hide_tips()">Mouse Over Here</a>
            <div id = "t" class = "tips">This is the tips of link</div>
        </body>
    </html>

    下面的代码使用jquery的库函数实现了不去触发Mouse Over Here链接而直接显示隐藏div的效果(仅在ruby1.9.2下测试过,ruby1.8x应该都不支持)

    jquery_helper.rb
    
    #encoding: utf-8
    module JqueryHelper
        def load_jquery dr,jquery_path
            jq = read_jquery(jquery_path)
            jq.force_encoding('utf-8')
            dr.execute_script jq
        end
    
        def read_jquery(jquery_path)
            js = ''
            File.open(File.expand_path(jquery_path), 'r') do |f|
                js = f.read
            end
            js
        end
    end

    fire_event.rb
    
    require 'rubygems'
    require 'selenium-webdriver'
    require './jquery_helper'
    include JqueryHelper
    dr = Selenium::WebDriver.for :firefox
    select_file = 'file:///'.concat File.expand_path(File.join(File.dirname(__FILE__), 'fire_event.html'))
    dr.navigate.to select_file
    
    jquery_path = './jquery-1.6.4.min.js'
    load_jquery dr, jquery_path
    jq = <<JQ
        $("#t").show();
    JQ
    
    dr.execute_script jq
    

    使用jquery来辅助测试实用性应该不是很强,不过有些时候可以使用jquery方法来获得dom节点的css属性,从而达到简化脚本的目的。

     
  • 相关阅读:
    app.config应该放哪?
    Connection 和Dispose的学习日志
    简单的sqlhelper的学习日志
    EF 事务(非分布式事务)
    Angularjs 地址联动2.1.1
    C# 如何物理删除有主外键约束的记录?存储过程实现
    C# 枚举基本用法及扩展方法
    JS 去除重复元素的方法
    MVC4程序运行报错
    ASP.NET MVC4 & Entity Framework 6.0 IIS 部署出错解决方案
  • 原文地址:https://www.cnblogs.com/timsheng/p/2559339.html
Copyright © 2020-2023  润新知