【问题标题】:Codeception Webdriver: Grabbing the href value of a linkCodeception Webdriver:获取链接的href值
【发布时间】:2014-03-21 18:58:53
【问题描述】:

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

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

有点像这样的 CMS 操作:

  1. 以管理员身份登录
  2. 创建内容
  3. 已创建内容并向用户显示链接

我希望那时可以

  1. 获取链接的href值
  2. 退出
  3. 转到 URL 并检查某些页面内容。

【问题讨论】:

    标签: codeception


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 2014-02-18
      相关资源
      最近更新 更多