验收测试 - 元素定位

  • 作者:KK

  • 发表日期:2015.12.13


前面的代码你看到了,像$I->click('nav li:nth-child(55) a');这里是明显是通过CSS选择器定位到了一个a标签再执行了click

验收测试开发中最经常用到的就是元素定位了,不然的话怎么找到那个元素去确认它的各种情况呢对吧

那么定位方面Codeception就是提供了CSS选择器XPath的支持,但请你不要搞错成jQuery选择器了喔!我以前有过几位同事不小心写了jQuery的选择器类似nav li:eq(55) a这样,其实CSS选择器根本没有eq这个伪类嘛,所以他就定位失败,搞半天来问我,我一看就懂了...哈哈,所以写惯了jQuery的同学们必须注意这个问题!而且这里的CSS选择器是CSS3选择器,以后你定位不到元素上网搜索CSS3选择器就是了

后面一些断言方法的参数中会有一些叫做$selector的参数,指的就是CSS选择器XPath


......

.......

........

.........

..........

呃,好像这节内容就这么点?专门开一页?不如这样吧,有空你可以看看这下面,不然就跳过.

接下来做一些元素定位的练习吧^-^ XPath我不熟悉,下面演示的基本都用CSS选择器,我相信大家也是比较熟悉CSS的

(下面的定位器并不是针对我的网站写的,你们自己练习时将配置改成自己的网站,然后自己捏造元素吧!)

$I->see('登陆');		//无选择器,将直接在整个页面查找文本
$I->see('登陆', '#mainDiv form');		//在选择器所指的区域里开始查找文本
$I->see('登陆', '#mainDiv form button');		//更加精确了

$I->dontSee('登陆', '#mainDiv form');		//指定区域里排除文本,就是断言这个区域里不会有这个文本咯

$I->click('忘记密码');	//点击带有这"登陆"两个字的a标签
$I->click('忘记密码', '#mainDiv .loginForm');	//在指定区域开始查找这个文字的链接
$I->click('//form/*[@type=submit]');	//通过XPath定位到一个submit按钮并点击它,实现表单提交