我尝试使用Codeception(使用webdriver / selenium进行验收测试)来测试我的应用程序,并希望能够在我执行操作后获取链接的值。
基本上我想退出系统,然后点击链接,所以我需要将url存储在变量中,以便在注销操作后使用。
这样的CMS操作:
我希望能够
答案 0 :(得分:2)
Codeception没有方法来获取链接的href,因为它太特殊,但你可以在WebHelper类中定义自己的动作来使用Mink API来获取href。详细了解Modules and Helpers。
以下是抓取链接href的操作示例:
public function grabHref($locator)
{
$webDriver = $this->getModule('Selenium2');
$link = $webDriver->session->getPage()->findLink($locator);
if ($link) {
return $link->getAttribute('href');
}
$this->fail("Link '{$locator}' not found");
}
将此函数放在_helpers / WebHelper.php文件中,然后在您的测试套件配置中启用WebHelper模块:
class_name: WebGuy
modules:
enabled: [Selenium2, WebHelper]
然后运行codecept build
以重建您的WebGuy类。
现在,您可以在cept / cest文件中使用grabHref操作:
$I = new WebGuy($scenario);
$I->wantTo('Grab Href');
$I->amOnPage('/');
$href = $I->grabHref('Link text or ID or Title');