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

原文地址:https://www.cnblogs.com/linyawen/p/2207992.html