zoukankan      html  css  js  c++  java
  • web自动化用例中应注意的问题

    1,测试对象的定位
          在WEB级测试的过程中,最麻烦的是测试对象的定位。Selenium有很多定位的方法,请自行学习。

    元素定位器(Element Locators)
        元素定位器(Element Locators)告诉Selenium 是向HTML 中的哪一个元素发送命令。一个定位器的格式如下:
         locatorType = argument
    我们支持如下写法用于定位元素:
       ·identifier=id :根据指定的@id 属性选择元素。如果没有匹配的值,则选择第一个@name 属性为id 的元素。(参照后面)
       ·id=id :根据指定的@id 属性选择元素。
       ·name=name :选择第一个根据指定的@name 所查找到的元素。
        〇username
        〇name=username
    这里的name 可以作为可选项跟在一个或多个元素过滤器的后面,通过空格进行分隔。如果没有指定过滤类型,则假定为value。
        〇name=flavour value=chocolate


      ·dom=javascriptExpression: 通过检测指定字符串查找元素。这使得你可以通过JavaScript 贯穿HTML 文档对象。注意在这个字符串中返回值不是必须的;仅仅只需要确保这条语句是你块中的最后一条。
    〇dom=document.forms[´myForm´].myDropdown
    〇dom=document.images[56]
    〇dom=function foo() { return document.links[1];}; foo();


    ·xpath=xpathExpression: 通过XPath 表达式定位元素。
    〇xpath=//img[@alt=´The image alt text´]
    〇xpath=//table[@id=´table1´]//tr[4]/td[2]
    〇xpath=//a[contains(@href, ´#id1´)]
    〇xpath=//a[contains(@href, ´#id1´)]/@class
    〇xpath=(//table[@class=´stylee´])//th[text()=´theHeaderText´]/../td
    〇xpath=//input[@name=´name2´ and @value=´yes´]
    〇xpath=//*[text()=″right″]


    ·link=textPattern: 选择所包含的文字匹配指定式样的链接(锚)。
       〇link=The link text


    ·css=cssSelectorSyntax: 通过css 选择器选择元素。请查询CSS2 选择器,CSS3 选择器以获得更多信息。在下载下来的selenium core package 中的selenium test suite 里的TestCssLocators test ,你同样可以查看到使用例子。
       〇css=a[href=″#id3″]
       〇css=span#firstChid + span
    当前css 选择过滤器支持所有的css1,css2,css3,除了css3 中一些虚拟类(:nth-of-type,:nth-last-of-type,:first-of-type,:last-of-type,:only-of
    -type,:visited,:hover,:active,:focus,:indeterminate)以及虚拟元素(::first-line,::first-letter,::selection,::before,::after)。


    如果没有一个显式的前缀,Selenium 使用以下默认写法:
    ·dom,用于开头为″document.″的定位器
    ·xpath,用于开头为″//″的定位器
    ·identifier,其他元素过滤器(Element Filters)


    元素过滤器可以同选择器一起使用,从一堆候选元素中进行筛选。它们当前仅使用于’name’元素选择器。
    过滤器看起来更像是选择器,也就是:
    filterType=argument
    所支持的元素过滤器为:
    value=valuePattern
    匹配元素时基于它们的值进行匹配。这在对一堆相似命名的关联按钮的筛选中显得尤其有用。
    index=index
    选择单个元素基于其在列表中的位置(从0 开始)。
    字符串匹配式样
    有各种各样的式样语法可用于匹配字符串值:
    ·glob:pattern: 用″glob″去匹配一个字符串。″Glob″是一种用于命令行shells
    的代表性的有限正则表达式语法。在一个glob 式样中, ″*″代表任意序列字符集,
    而″?″则代表任意单个字符。Glob 式样匹配整个字符串。
    ·regexp:regexp: 使用正则表达式匹配字符串。可使用所有的JavaScript 正则
    表达式。

    有个注意事项:如果要定位新打开窗口中的元素,必须先选定新窗口:selectWindow()。
    测试对象的扫描


        2,在测试用例执行的过程中,有的时候由于页面刷新的原因,可能出现找不到的情况,这个时候加些儿必要的Sleep()语句。

    3, $this->waitForPageToLoad("30000")有的时候会因为网页刷新慢而失效,可以改成Sleep语句,这样就可以防止因页面问题而出错了。

     

    4,Assert语句的选择,有的时候很多Assert可以实现想要达到的效果,所以选择的时候要挑选合适的。如要严格匹配的话,就用AssertEqual(),如果不需要的话,就用assertContains(),以增加测试用例的健壮性。


    Selenium 函数和Assert语句的选择


         (1) Selenium API函数参考手册
         (2)Selenium入门:http://blog.csdn.net/chinabluexfw/article/details/7331359
         (3)Assert语句介绍
              思想之地:
    http://be-evil.org/tag/phpunit
              phpunit -assert系列函数:http://blog.sina.com.cn/s/blog_5d2184eb0100n9z1.html

  • 相关阅读:
    Js获取当前日期时间及其它操作
    Java JDBC 基础知识
    java自动创建多级目录
    [Java]读取文件方法大全
    table固定首行(二)
    table固定首行(一)
    DIV滚动条
    查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程
    DWZ SSH2 菜单树--使用Struts2 标签(iterator/set/if 组合使用)
    synchronized与lock,哪个效率更高
  • 原文地址:https://www.cnblogs.com/eagleking0318/p/6521107.html
Copyright © 2011-2022 走看看