Selenium - 关闭浏览器时如何执行清理

时间:2017-10-25 07:13:21

标签: javascript java google-chrome selenium

我正在解决一个问题,我需要在点击谷歌浏览器关闭按钮并关闭浏览器窗口之前执行一些清理。

清理涉及退出网站以及其他一些事项。清除所有cookie不是一种选择。不幸的是,我没有遇到任何这样的例子,我可能会暴露像钩子一样的东西(类似于Java中存在的东西)。

selenium是否提供了覆盖关闭功能的任何机制,以便我可以执行清理,然后当有人点击关闭按钮或关闭浏览器时退出浏览器?

简而言之

由于一些设计相关的原因,我不能在测试退出时进行清理。我可以劫持关闭按钮(手动点击)吗?

2 个答案:

答案 0 :(得分:0)

清理是一个非常广泛的描述,它可能涉及并意味着许多事情。

但通常在编写Selenium测试时,您希望在每次测试或每个测试套件后重置应用程序的状态。

这通常由afterafterEach方法完成。它们在每组完整的测试之后或每次测试之后运行。就像您可以通过beforebeforeEach方法设置内容一样。

如何注销,取决于您的应用程序。可能涉及清理特定的cookie /会话或手动执行用户的步骤。

一个简短而广泛的例子:

afterEach('Clear up', (done) => {
  driver
  .then(() => MyUtils.clearStorage(driver))
  .then(() => done());
});

after((done) => {
  driver
  .then(() => driver.quit())
  .then(() => done());
});

答案 1 :(得分:0)

如果使用selenium关闭浏览器,则不必担心退出应用程序。

selenium启动的浏览器不会像普通浏览器那样存储您的历史记录或Cookie。因此,如果您使用selenium登录应用程序并且没有注销,只需关闭浏览器然后再次尝试使用selenium打开应用程序链接,那么在这种情况下您也必须提供凭据。

但是在登录后的正常浏览器中,如果您关闭浏览器然后再次打开浏览器并在浏览器中点击应用程序URL,那么大部分时间您都不必提供凭据,它会自动登录到应用程序但在Selenium中并非如此。

现在通过清理,如果你想删除你使用selenium创建的数据/记录,那么在这种情况下你必须编写代码来删除这样的记录。 Selenium不会自动删除其创建的记录。