• Seleniumwebdriver系列教程(11)————使用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属性,从而达到简化脚本的目的。

    本文源码请点击下面链接下载

    jquery

  • 相关阅读:
    django第八天总结
    获取文件名的基本信息
    单个文件上传与多个文件上传
    return .php
    upload.php
    string.php
    upload.php
    upload.html
    获取上传文件
    那些年被我坑过的Python——牵一发动全身 第十一章MySQL、ORM
  • 原文地址:https://www.cnblogs.com/nbkhic/p/2221729.html
Copyright © 2020-2023  润新知