如何用laravel dusk点击链接图标?

问题描述 投票:0回答:3

如果我有链接:

<a href="/somewhere">Click Me</a>

根据其文字,我知道我可以

clickLink

public function testCanClickLink()
{
    $this->browse(function ($browser) {
        $browser->visit('/welcome')
                ->clickLink('Click Me');
    });
}

但是我怎样才能点击图标链接呢?

<a href="/somewhere">
    <i class="fa fa-plus" aria-hidden="true"></i>
</a>
php laravel laravel-dusk
3个回答
9
投票

您可以像这样定位 href:

->click('a[href="/somewhere"]')


2
投票

这有点hacky,但这是我想出的解决方法。

  1. 在链接上放置一个 id 选择器。

    <a id="link-click-me" href="/somewhere">
        <i class="fa fa-plus" aria-hidden="true"></i>
    </a>
    
  2. 断言它是可见的。

  3. 获取href属性。
  4. 访问它。
  5. 断言路径正确。

    public function testCanClickLink()
    {
        $this->browse(function ($browser) {
            $browser->visit('/welcome')
                    ->assertVisible('#link-click-me')
                    ->visit(
                        $browser->attribute('#link-click-me', 'href')
                    )
                    ->assertPathIs('/somewhere');
        });
    }
    

0
投票

我有同样的疑问......最糟糕的是,我无法使用 href 作为可点击元素的引用,因为我只需要打开一个模式。所以,我的解决方案是使用 dusk 属性,如下所示:

<a dusk="link-click-me" href="">
    <i class="fa fa-plus" aria-hidden="true"></i>
</a>

并且......在我的测试代码中,运行这一行:

$browser->click('@link-click-me');

享受吧! Ø/

© www.soinside.com 2019 - 2024. All rights reserved.