为什么我不能与Laravel Dusk一起使用Body Class Selector



我使用的是Laravel 5.5和Dusk 2.0。我有以下html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
</head>
<body class="my-body-class" id="my-body-div">
    <div class="my-content-class" id="my-content-div">
        Content goes here.
    </div>
</body>
</html>

这是我的黄昏测试。

public function testBasicExample()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('/test/admin-fixed-layout');
        $this->assertNotNull($browser->element('.my-content-class'));
        $this->assertNotNull($browser->element('#my-content-div'));
        // $this->assertNotNull($browser->element('.my-body-class'));
        $this->assertNotNull($browser->element('#my-body-div'));
    });
}

如果我不接受使用身体类选择器的断言,则测试失败。为什么?

这是因为默认情况下将前缀设置为 body

public function __construct($driver, $prefix = 'body')
{
    $this->driver = $driver;
    $this->prefix = trim($prefix);
}

LaravelDuskElementResolver类中。

如果您确实需要更改此此事(但可能没有意义),则可以将以下方法添加到Tests/DuskTestCase类中:

protected function newBrowser($driver)
{
    return new LaravelDuskBrowser($driver, new LaravelDuskElementResolver($driver, ''));
}

这将覆盖默认浏览器并传递空前缀,而不是默认的body前缀

相关内容

最新更新