如何用laraveldusk点击link图标?

How to click link icon with laravel dusk?

如果我有 link:

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

我知道我可以 clickLink 基于它的文字。

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

但是我怎样才能点击图标link?

<a href="/somewhere">
    <i class="fa fa-plus" aria-hidden="true"></i>
</a>

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

  1. 在 link 上放置一个 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');
        });
    }
    

您可以像这样定位 href:

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