在 Codeception 测试中循环访问页面上的链接
Loop through links on a page in Codeception Tests
我正在使用 Codeception 和 PHPBrowser webdriver 编写一些功能测试。
Codeception 使用 CSS 或 XPath 中的特定引用来检查页面上的元素。
但我希望能够遍历我菜单中的所有 link,单击它并 运行 进行测试以查看 link 是否正常工作。
即。如果我的菜单是这样的:
<ul id='nav'>
<li><a>Link1</a></li>
<li><a>Link2</a></li>
<li><a>Link3</a></li>
<li><a>Link4</a></li>
<li><a>Link5</a></li>
</ul>
我希望能够遍历 links 并传递其索引:
$links = somefunctiontogetalllinks();
for ($x = 0; $x <= count($links); $x++) {
codeceptionTest($x);
}
然后测试可以使用CSS伪选择器引用link:
public function codeceptionTest($index) {
$i->click('#nav > li:nth-child(' . $index . ') > a');
$I->see('Page Content');
}
我无法找到使用 PHPbrowser 或 Codeception 方法获取元素集合的任何方法,而且我不确定是否将其抓取的页面作为要遍历的对象呈现。
您尝试过使用 grabMultiple 方法吗?
http://codeception.com/docs/modules/PhpBrowser#grabMultiple
它 returns 单个属性值的列表,但如果您的所有项目都具有 id 或 href 属性,它应该足够好。
如果你真的想获取节点,实现你自己的方法。
将getMultiple方法复制到Helper\Functionalclass,根据需要重命名和修改。
http://codeception.com/docs/06-ReusingTestCode#Modules-and-Helpers
我正在使用 Codeception 和 PHPBrowser webdriver 编写一些功能测试。
Codeception 使用 CSS 或 XPath 中的特定引用来检查页面上的元素。
但我希望能够遍历我菜单中的所有 link,单击它并 运行 进行测试以查看 link 是否正常工作。
即。如果我的菜单是这样的:
<ul id='nav'>
<li><a>Link1</a></li>
<li><a>Link2</a></li>
<li><a>Link3</a></li>
<li><a>Link4</a></li>
<li><a>Link5</a></li>
</ul>
我希望能够遍历 links 并传递其索引:
$links = somefunctiontogetalllinks();
for ($x = 0; $x <= count($links); $x++) {
codeceptionTest($x);
}
然后测试可以使用CSS伪选择器引用link:
public function codeceptionTest($index) {
$i->click('#nav > li:nth-child(' . $index . ') > a');
$I->see('Page Content');
}
我无法找到使用 PHPbrowser 或 Codeception 方法获取元素集合的任何方法,而且我不确定是否将其抓取的页面作为要遍历的对象呈现。
您尝试过使用 grabMultiple 方法吗? http://codeception.com/docs/modules/PhpBrowser#grabMultiple
它 returns 单个属性值的列表,但如果您的所有项目都具有 id 或 href 属性,它应该足够好。
如果你真的想获取节点,实现你自己的方法。
将getMultiple方法复制到Helper\Functionalclass,根据需要重命名和修改。 http://codeception.com/docs/06-ReusingTestCode#Modules-and-Helpers