Laravel dusk if browser->assertSee 然后执行此操作

Laravel dusk if browser->assertSee then do this

有没有办法在 assertSee returns 出现错误的情况下继续进行测试。

这是我当前的代码:

$browser->visit('https://urltotest.co.uk/find-an-engineer/')
        ->type("EngineerId", $engineerId)
        ->click('#checkEngineer');

$test = $browser->assertSee("Engineer cannot be found");

我希望能够做的是:

if ($test == false) {
    return false;  
} else {
    return $browser->text('.engineer-search-results-container .search-result .col-md-8 .row .col-xs-10 h3');
}

但是当 assertSee 失败时,我得到的只是:

Did not see expected text [Engineer cannot be found] within element [body].

作为例外。如果它找不到该元素,我可以通过什么方式继续?

您应该能够使用 try catch 捕获异常来实现此目的:

try {
    $browser->assertSee("Engineer cannot be found");
} catch(\Exception $e) {
    return false;
}

注意,我不知道有没有像$browser->fail()这样的方法(比如phpunit的$this->fail())会让你测试失败。