如何使用 selenium 和 codeception 检测验收测试中的 dom 变化

Posted

技术标签:

【中文标题】如何使用 selenium 和 codeception 检测验收测试中的 dom 变化【英文标题】:How to detect dom change in acceptance testing with selenium and codeception 【发布时间】:2013-02-18 20:53:13 【问题描述】:

我正在为 Angular 编写的应用程序编写验收测试。我使用带有 selenium 的 Codeception 测试框架。测试将一些文本写入输入字段并提交表单。它应该通过 ajax api 调用向 db 添加新任务,并将新的 <li> 元素添加到现有任务列表中。 我如何检测到添加了新元素?到目前为止,这是我所得到的:

<?php
$I = new WebGuy($scenario);
$I->wantTo('add new story');
$I->amOnPage('/');
$I->fillField('input', 'asdf');
$I->pressKey('input[name=input]', '13');
// ensure that new <li> has been added?

【问题讨论】:

新元素是添加在列表末尾还是列表中间的任意位置? 添加到开头 【参考方案1】:

您可以使用以下任何方式编写代码以单击 li

//通过div标签访问

$I->click('div div div div div ul li a');
$I->see('UNIT 1');

//通过类名访问

$I->click('div[class="new"] div div div a');

//通过div ids访问

$I->click('div[id=tnList] ul li a');

【讨论】:

以上是关于如何使用 selenium 和 codeception 检测验收测试中的 dom 变化的主要内容,如果未能解决你的问题,请参考以下文章

使用 Selenium 和 Python,如何检查按钮是不是仍然可点击?

如何使用Python和Selenium分页来抓取页面

如何使用 Python 和 Selenium 进行分页抓取页面

如何通过 Python 使用 GeckoDriver 和 Firefox 使 Selenium 脚本无法检测?

如何使用Selenium和Python下载图像

如何使用Selenium和Python从Java脚本获取变量值