laravel dusk 测试登录wordpress无法设置cookie

laravel dusk test login to wordpress unable to set cookie

我正在使用 laravel dusk 使用以下功能登录 wordpress 网站

 public function testLoginPage()
{
    $this->browse(function (Browser $browser) {
        $browser->visit('http://localhost/wordpress/wp-login.php')
            ->waitFor('#wp-submit')
            ->value('#user_login', '***')
            ->value('#user_pass', '***')
            ->click('#wp-submit')
            ->waitFor('#footer-thankyou')
            ->assertSee('Thank you for creating with');
        $this->saveCookies($browser);
    });
}

并保存创建的 cookie

protected $cookie_file = 'cookies.txt';

private function saveCookies(Browser $browser) {
    $cookies = $browser->driver->manage()->getCookies();
    file_put_contents($this->cookie_file, serialize($cookies));
}
private function loadCookies(Browser $browser) {
    if (file_exists($this->cookie_file)) {
        //Get cookies from storage
        $cookies = unserialize(file_get_contents($this->cookie_file));
        //Add each cookie to this session
        foreach ($cookies as $key => $cookie) {
            $browser->driver->manage()->addCookie($cookie);
        }
    }
}

现在我登录成功了,cookie也被创建了

但是当我在管理员中尝试更新页面之类的页面时,我收到无法设置 cookie 的错误(Session 信息:chrome=86.0.4240.75)

public function testUpdateAllPlugins()
{
    $this->browse(function (Browser $browser) {
        $this->loadCookies($browser);
        $browser->visit('http://localhost/wp-admin/update-core.php')
            ->waitFor('#plugins-select-all')
            ->check('#plugins-select-all')
            ->click('#upgrade-plugins')
            #->withinFrame('iframe[title="Update progress"]', function($browser){
            ->withinFrame('.wrap > iframe', function($browser){
                $browser
                    ->assertSee('All updates have been completed');
            });
    });
}

我需要能够在登录后访问所有管理页面,所以我的问题是如何设置和使用来自 laravel dusk 的 cookie 到 wordpress 站点。 我在测试用例中使用以下命名空间

namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;
use Facebook\WebDriver\Cookie;
use Facebook\WebDriver\WebDriverOptions;
use Laravel\Dusk\Chrome\ChromeProcess;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\DesiredCapabilities;

我在登录后立即使用访问代码使其正常工作,而不是设置 cookie 并使用不同的方法访问浏览器。