无法关闭使用NightwatchJS浏览器

问题描述 投票:3回答:1

我试图用Nightwatch打开我的网址,我wan't随后能够关闭浏览器。

我试着用timeouts,以及browser.end(),或browser.closeWindow()。他们都不似乎工作为我的地址。

module.exports = {
  'Demo test mywrkouts' : function (browser) {
    browser.url('https://www.mywrkouts.com/workouts/search')
    browser.timeouts('script', 10000, function(result) {
    browser.end();
      console.log("Test result"+result);
    });
    //browser.closeWindow();
  }
};

它打开页面,但不会关闭浏览器。我使用的Chrome浏览器与chromedriver。我期待关闭窗口,但它不工作。

任何建议表示赞赏。

selenium selenium-webdriver nightwatch.js
1个回答
1
投票

LE:就像我可延伸如下所述,你不需要在测试(通过browser.end())结束显式地关闭浏览器作为夜巡测试亚军会替你在每一个特征文件的末尾。

但是,如果你需要做一些拆卸操作,然后明确地关闭会话,这样做在after(或afterEach)挂钩。试试下面的代码片段:

module.exports = {

  before(browser) {
    browser.maximizeWindow();
  },

  'My Wrkouts Test': (browser) => {

    browser.url('https://www.mywrkouts.com/');
    // Check if the website logo is visible:
    browser.expect.element('#barbell-homepage-top-image-desktop img.app-bar-desktop-logo').to.be.visible;
    // Check the articles heading text:
    browser.expect.element('h3.blog-carousel-title.primary-blue-text.center').text.to.contain('Foundational Education Series');
  },

  after(browser, done) {
    browser.end(() => {
      console.info('*--*--*--*--*--*--*--*--*--*--*--*--*');
      console.info('*-- Clossing session... Good bye! --*');
      console.info('*--*--*--*--*--*--*--*--*--*--*--*--*');
      done();
    });
  }
};

不管怎么说,我觉得你是在混淆的方式NightwatchJS / WebdriverIO /量角器(或任何其他基于webdriver的测试解决方案)正在处理browser会话。

首先,你不必担心关闭活动会话。 Nightwatch会为你在每个测试特征文件的末尾。因此,在运行的西装让我们说三个测试套件(login.jsregister.jsforgot_password.js)将按顺序产卵并关闭三个不同browser会议。

此外,browser.closeWindow()仅用于封闭window实例(因为考虑到你有相同的browser会话相关的多个窗口帐户)。它不会关闭您的主window,除非你已切换至另一个window实例(测试运行期间以前打开)。

如果您在测试中使用browser.end(),那么你基本上杀死活动会话中,抵消了从功能文件以下逻辑:

INFO Request: DELETE /wd/hub/session/4a4bb4cb1b38409ee466b0fc8af78101
 - data:
 - headers:  {"Content-Length":0,"Authorization":"Basic Z29wcm86YmM3MDk2MGYtZGE0Yy00OGUyLTk5MGMtMzA5MmNmZGJhZTMz"}
INFO Response 200 DELETE /wd/hub/session/4a4bb4cb1b38409ee466b0fc8af78101 (56ms) { sessionId: '4a4bb4cb1b38409ee466b0fc8af78101',
  status: 0,
  value: null }
LOG     → Completed command end (57 ms)

之后的一切看起来就像这样:

INFO Response 404 POST /wd/hub/session/null/elements (11ms) { sessionId: 'null',
  value:
   { error: 'invalid session id',
     message: 'No active session with ID null',
     stacktrace: '' },
  status: 6 }

!注:对于做什么你正在尝试做的不支持,也不是常见的使用情况,从而缺乏在所有这些测试解决方案支持它。

他们说,一张图片胜过1000分的话,那么让我们来我简单地把它这样...你正在尝试做的是用下面的代名词:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.