如何使用 zombie.js 登录 Wordpress 管理员?

How to login into the Wordpress admin with zombie.js?

我正在尝试 登录 到我的 Wordpress 站点,但似乎无法成功登录。

describe('Administrator', function(){
    const browser = new Browser();
    this.timeout(10000);
    before(function() {
        return browser.visit(baseUrl+'wp-login.php');
    });

    it('Login into wp-admin', function(done){
        browser.fill('#user_login', 'my_username')
               .fill('#user_pass', 'my_password')
               .pressButton('#wp-submit',
        function(){
            console.log(browser.text('title')); // My Wordpress ‹ Log In
            //browser.assert.element('body.wp-admin');
            //done();
        });
    });

    after(function() {
        browser.destroy();
    });
});

当我按 browser.text('title')

登录时

它的 return 我的 Wordpress ‹ 登录 不是 仪表板 ‹ 我的 Wordpress

这意味着它没有成功。我在检查之前尝试使用 wait()then()setTimeout(),所以它的错误如下:

Error: timeout of 10000ms exceeded. Ensure the done() callback is being called in this test.

有什么想法吗?

我试图通过 运行 您针对 https://demos1.softaculous.com/WordPress/wp-login.php 的示例代码重现您的问题。我看到僵尸在试图在页面上查找 visible/hidden 元素时将 CPU 固定在 100%。

我打开并修复了 https://github.com/assaf/zombie/issues/1086 以显着提高僵尸在该特定 WordPress 网站上的性能。

您应该使用 zombie > 5.0.2 再试一次,看看您的 WordPress 网站是否导致了同样的高 CPU 行为。