验收测试 - 元素定位 ¶
作者: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按钮并点击它,实现表单提交