php - Laravel Dusk NoSuchElementException/无法定位元素

标签 php laravel google-chrome laravel-dusk

我正在尝试运行一些基本的 Laravel Dusk 测试,但总是遇到 Facebook WebDriver 的问题:

我已经将 chrome 更新到最新版本并使用 Hombrew 手动更新了 Chrome WebDriver:

有什么建议吗?

干杯,斯坦

错误:

Tests\Browser\Tests\Auth\SignUpTest::a_user_can_sign_up
Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"body textarea[name='input[name="name"]']"}
  (Session info: headless chrome=64.0.3282.119)
  (Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.12.6 x86_64)

我的注册测试:

public function a_user_can_sign_up()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit(new SignUpPage)
                ->signUp('Erika Musterfrau', 'erika.musterfrau@socialite.ch', 'password', 'password')
                ->assertPathIs('/dashboard')
                ->assertSeeIn('.navbar', 'Erika Musterfrau');
        });
    }

我的注册页面:

 public function assert(Browser $browser)
    {
        $browser->assertPathIs('/register');
    }

    public function signUp(Browser $browser, $name = null, $email = null, $password = null, $passwordConfirmation = null)
    {
        $browser->type('@name', $name)
            ->type('@email', $email)
            ->type('@password', $password)
            ->type('@password_confirmation', $passwordConfirmation)
            ->press('Register');
    }

    /**
     * Get the element shortcuts for the page.
     *
     * @return array
     */
    public function elements()
    {
        return [
            '@name' => 'input[name="name"]',
            '@email' => 'input[name="email"]',
            '@password' => 'input[name="password"]',
            '@password_confirmation' => 'input[name="password_confirmation"]',
        ];
    }

OneOfMyRegisterInputViews:

<div class="form-group row">
                            <div class="col-lg-8 offset-2">
                                <input placeholder="name"
                                        type="text"
                                        class="form-control{{ $errors->has('name') ? ' is-invalid' : '' }}"
                                        name="name"
                                        value="{{ old('name') }}"
                                        required
                                >
                                @if ($errors->has('name'))
                                    <div class="invalid-feedback">
                                        <strong>{{ $errors->first('name') }}</strong>
                                    </div>
                                @endif
                            </div>
                        </div>

最佳答案

对于那些仍然有问题的人:检查 Laravel 的 .env 文件中的 APP_URL 变量。应用程序运行的 URL 必须与 APP_URL 参数匹配

关于php - Laravel Dusk NoSuchElementException/无法定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48567518/

相关文章:

javascript - VueJs Assets - Laravel 5.5

javascript - 使用 Restangular 时出现“Access-Control-Allow-Origin” header 问题

android - 如何使用 Selenoid Docker 图像将标志传递给移动 Chrome

html - 谷歌浏览器中的滚动条问题

php - Laravel Eloquent where on Join Table

php - 如何在laravel包中给出资源路径?

php - 自动将产品分配到 WooCommerce 中定义的产品类别

php - 从复选框获取多个值并将其存储在 DB php 中

php - 使用 composer 将 github 包安装到 Laravel 项目中

safari - top.location.replace 在 Safari/Chrome 中创建历史记录项