所以,我有一个 globals.js 文件,我在其中提到了 beforeEach 和 afterEach,但是我可以从这个链接Nightwatch Globals 中了解到,beforeEach 和 afterEach 在测试套件(单个 Js 文件)之前和之后被调用一次。但是在我的框架中,我在单个 js 文件(或测试套件)中有多个测试用例,我想在每个测试用例之前和之后调用 beforeEach 和 afterEach。无论如何要实现这一目标?下面是我的 globals.js 文件:
module.exports = {
    asyncHookTimeout: 40000,
    beforeEach: function (browser, done) {
        // browser.maximizeWindow();
        // browser.deleteCookies();
        browser.perform(function () {
            console.log('Inside BeforeEach');
            done();
        });
    }
    afterEach: function (browser, done) {
        browser.end(function () {
            console.log("Inside After Each");
            done();
        });
    },
};
Run Code Online (Sandbox Code Playgroud) 所以我有一个以前工作正常的插件,但几天后它向我抛出一个错误:
PHP 致命错误:未捕获错误:调用未定义的函数 create_function()
经过一番搜索,我发现这是因为create_function()PHP 8 中已弃用。
现在导致问题的确切行是这样的:
$callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";');
Run Code Online (Sandbox Code Playgroud)
我尝试将其更改为:
$callback_2 = create_function('$matches', 'return "[" . str_replace("|", "", $matches[1]) . "]";');
Run Code Online (Sandbox Code Playgroud)
但这不起作用。因此,如果有人能指出我正确的方向,而且我对 PHP 很陌生,那就太好了。
上下文:我在第 1 页有一个带有 innerText 的元素,在第 2 页有另一个带有 innerText 的元素。我需要比较第 3 页中的这两个值。所以我需要找到一种方法将这些值保存在全局变量中,以便它们可以稍后使用。
我尝试过的事情:
试验 1:不起作用,因为 page1value 范围仅限于 cy.get()
  cy.get('#selector').invoke('text').then(text => {
      const page1value = text
  })
Run Code Online (Sandbox Code Playgroud)
试验 2:每当我尝试在外部打印值时,它都不起作用,它是未定义的或初始化时使用的值。
it('TC Name', () => {
    let page1value,
        cy.get('#selector').invoke('text').then(text => {
            page1value = text
        })
    cy.log(page1value) //comes as undefined
})
Run Code Online (Sandbox Code Playgroud)
试验 3:使用 .as() 以及它的到来是未定义的。
let page1value;
cy.get('#selector').invoke('text').as('page1value');
cy.log(page1value) //comes as undefined
Run Code Online (Sandbox Code Playgroud)
如果有人能告诉我我哪里做错了,那就太好了。
javascript global-variables ui-automation e2e-testing cypress