【问题标题】:Why can I not use a body class selector with Laravel Dusk?为什么我不能在 Laravel Dusk 中使用 body 类选择器?
【发布时间】:2017-09-21 09:46:29
【问题描述】:

我正在使用 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'));
    });
}

如果我取消注释使用主体类选择器的断言,则测试失败。为什么?

【问题讨论】:

    标签: laravel laravel-5 laravel-5.5 laravel-dusk laravel-dusk2


    【解决方案1】:

    这是因为默认前缀设置为body

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

    Laravel\Dusk\ElementResolver 类中。

    如果你真的需要改变这个(但可能没有意义),你可以在Tests/DuskTestCase类中添加如下方法:

    protected function newBrowser($driver)
    {
        return new \Laravel\Dusk\Browser($driver, new \Laravel\Dusk\ElementResolver($driver, ''));
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      相关资源
      最近更新 更多