Dusk 中的 URL 断言要使用哪个函数?

Which function to be used for URL assertion in Dusk?

public function testPagination()
{
    $this->browse(function($first)
    {
        $first->loginAs(\App\User::find(1))
              ->visit('http://mettledlp.in.linuxense.com/user');
    });
    $this->browse(function(Browser $browser)
    {
        $browser->visit('http://mettledlp.in.linuxense.com/mailLog?page=1')
                ->clickLink('2')
                ->assertUrlIs('http://mettledlp.in.linuxense.com/mailLog?page=2');
    });
}

错误 1) Tests\Browser\MessageTest::测试分页 实际 URL [http://mettledlp.in.linuxense.com/mailLog?page=2] does not equal expected URL [http://mettledlp.in.linuxense.com/mailLog?page=2]。 断言“http://mettledlp.in.linuxense.com/mailLog”与 PCRE 模式“/^http://mettledlp.in.linuxense.com/mailLog\?page\=2$/u”匹配失败。

两者 URL 对我来说似乎是一样的。我正在尝试单击分页产生的“2”。截图显示点击已经成功完成。 当我运行命令phpartisandusk。我给出的错误弹出并且测试失败。

assertUrlIs 断言当前 URL(没有查询字符串)匹配给定的字符串:

$browser->assertUrlIs($url);

Laravel Dusk 没有提供将 URL 与查询字符串相匹配的方法。

你可以这样做

$this->assertEquals($browser->driver->getCurrentURL() , 'your-url');

断言给定的查询字符串参数存在且具有给定值:

$browser->assertQueryStringHas($name, $value);

因此您可以使用这样的查询字符串测试 url:

$browser->visit('mettledlp.in.linuxense.com/mailLog?page=1')
->clickLink('2')
->assertUrlIs('mettledlp.in.linuxense.com/mailLog')
->assertQueryStringHas('page','2');