对网页进行断言
最后更新于:2022-04-02 00:33:36
TP单元测试扩展中对网页元素的断言是基于symfony部分组件的,因此在使用对网页断言的时候还需要安装一个CssSelector的symfony组件。打开命令行,切换到TP的根目录下,运行下列的命令:
`composer require symfony/css-selector:2.8`
等待其安装后便可以了。下面我们使用几个例子来说明一下如何使用网页元素断言。
# seeInElement
断言某个元素内是否存在某个元素。
@param $element 指定的元素,如body
@param $text 要断言的文本
@param $negate 是否断言不存在,默认为false
假设有如下的网页:
~~~
Hello !
~~~
如果要断言字符串hello存在于body元素内,而字符串test不存在body里面,我们可以这么写:
~~~
visit('/index/index/index')->seeInElement('body','hello');
$this->visit('/index/index/index')->seeInElement('body','test',TRUE);
}
}
~~~
# notSeeInElement
效果如同seeInElement中将第三个参数设置为true
@param $element 指定的元素,如bod
@param $text 要断言的文本
例子如上。
# seeLink
断言某个链接是否存在,当第二个参数被设置时,同时断言其链接。
@param $text 某个a元素的文本,比如`test`,那么这里应该是test
@param $url 默认为null,即断言找到的链接其地址是否为该url
假设有如下的网页:
~~~
百度一下你就知道
~~~
如果要断言链接百度一下你就知道的a标签的地址,可以如下:
~~~
visit('/index/index/index')->seeLink('百度一下你就知道','http://www.baidu.com');
}
}
~~~
# notSeeLink
断言不存在某个链接。
@param $text 某个a元素的文本,比如`test`,那么这里应该是test
@param $url 默认为null,即断言找到的链接其地址是否为该url
例子如上。
# SeeInField
对input或者是textArea的value进行断言。
@param $selector name的值或者是id值
@param $expected 期望valued的值
如下网页:
~~~
~~~
我们即可以对name=test的input,也可以对id=myInput的input的value进行断言:
~~~
visit('/index/index/index')->seeInField('test','hello');//通过name定位元素
$this->visit('/index/index/index')->seeInField('myInput','hello');//通过id定位元素
}
}
~~~
# notSeeInField
对input或者是textArea的value进行断言。
@param $selector name的值或者是id值
@param $expected 期望valued的值
例子如上。
# seeIsChecked
对某个input选中进行断言。
# notSeeIsChecked
对某个input不是选中进行断言。
# seeIsSelected
对某个inpust选择进行断言。
# notSeeIsSelected
对某个input不选择进行断言。
# seePageIs
对某个页面的uri进行断言。
';