Codeception Webdriver:抓取链接的href值

时间:2014-03-21 18:58:53

标签: codeception

我尝试使用Codeception(使用webdriver / selenium进行验收测试)来测试我的应用程序,并希望能够在我执行操作后获取链接的值。

基本上我想退出系统,然后点击链接,所以我需要将url存储在变量中,以便在注销操作后使用。

这样的CMS操作:

  1. 以管理员身份登录
  2. 创建内容
  3. 创建内容并向用户显示链接
  4. 我希望能够

    1. 抓住链接的href值
    2. 退出
    3. 转到网址并检查某些网页内容。

1 个答案:

答案 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');