zoukankan      html  css  js  c++  java
  • Selenium 1.0 测试工具入门手册

    第2章:定位器

    本章主题如下:
    *根据ID定位元素
    *根据名字定位元素
    *根据链接定位元素
    *根据XPath定位元素
    *根据CSS定位元素

    需要准备的工具:
    Firebug: https://addons.mozilla.org/en-US/firefox/addon/1843
    Firefinder: https://addons.mozilla.org/en-US/firefox/addon/11905
    IE Developer Tools:这个工具内置在IE7,IE8中,按F12即可调出。
    Google Chrome Developer Tools

    *根据ID定位元素

        Firebug中有个“点击查看页面中的元素”的按钮,单击这个按钮,移动鼠标到你需要看到的元素即可。即便是元素的位置发生移动,也照样可以找到。

    *根据名字定位元素

        通过名字来定位,可以使用过滤器。比如name=verifybutton value=chocolate。

    *根据链接定位元素
        target link=link;然后使用verifyElementPresent来验证。
        
    *根据XPath定位元素
        AJAX使用了DOM模型。比如第一个链接是document.links[0]。多与waitForCondition配合,通过JavaScript来查找元素。
        例如:
        function searchLinks (){
            var links = document.links,
            h = new RegExp(/http:\/\//);
            for (link in links){
            if (link.toString().match(h)) { return link; }
            }
        }
        searchLinks();


        xpath=//input。可以同时附加属性:xpath=//element[@attribute='attribute value'],xpath=//div[@class='classname'].
        //表示找到第一个元素之后就停止,它是一个贪婪匹配。
        xpath=/html/body/div[2]/div[3]/input 单个/表示绝对路径。绝对路径比较快速,但是灵活性不好,可能ui改变以后无法找对元素。
        访问第2个标签://div[2]
        针对部分动态的ID://div[contains(@id,'time_');starts-with的效果也类似。
        根据包含的文本来定位元素://element[text()='inner text']. 也可以和contains配合://div[contains(text(),'element has a ID')]
        可以通过相邻的元素来查找: //input[@value='Button with ID']/following-sibling::input[@value='Sibling Button'] 其他的有:ancestor,descendant,following,following-sibling,parent,preceding,preceding-sibling


    *根据CSS定位元素
        Selenium兼容CSS 1.0, CSS 2.0和CSS 3.0选择器。还支持CSS 3.0中的伪类和伪元素。
        css=div.leftdiv input 和传统的css不一样,它找到一个就停止。子元素的查找也可以这样表示:css=div.leftdiv > input
        查找兄弟元素:
        比如:
        <div id="divontheleft" class="leftdiv">
        <input id='but1' value='Button with ID' type='button'/>
        <br/>
        <input value='Sibling Button' type='button'/>
        </div>

        css=input#but1找到第一个button。查找兄弟为:css=input#but1 + br + input。
        配合使用类名:css=div.centerdiv,centerdiv是类名。
        配合使用ID:css=div#divinthecenter.
        配合使用属性:css=input[value='chocolate']。连接也类似:css=a[href='/。
        还可以改变属性:css=input[id='but1'][value='Button with ID'].
        部分匹配:
        ^=    starts-with.
        $=    ends-with.
        *=    contains.
        例如:div[id^='time_'] or div[id*='time_'].

        访问第2个标签:css=div#divinthecenter *:nth-child(2).
        Selenium不支持nth-of-type伪类。所以使用了*。
        包含文本:css=div:contains('element has a ID')

        CSS只能往前读,所以比xpath快。

    #承接软件自动化实施与培训等gtalk: ouyangchongwu#gmail.com qq 37391319
    #python qq group: 深圳自动化测试python群:113938272

  • 相关阅读:
    剑指offer-翻转单词序列
    剑指offer-丑数
    剑指offer-把数组排成最小的数
    mysql笔记(13)-视图的概念和使用
    mysql笔记(12)-外键约束的添加和删除
    mysql笔记(11)-约束的添加、修改和删除
    mysql笔记(10)-数据的插入和更新(insert/update/case)
    mysql笔记(9)-表的创建和删除(drop/truncate/delete)
    mysql笔记(8)-嵌套查询之in、exists
    mysql笔记(7)-多表查询之自然连接、外连接
  • 原文地址:https://www.cnblogs.com/linyawen/p/2207992.html
Copyright © 2011-2022 走看看