EventFiringWebDriver / WebDriverEventListener 调用顺序
Posted
技术标签:
【中文标题】EventFiringWebDriver / WebDriverEventListener 调用顺序【英文标题】:EventFiringWebDriver / WebDriverEventListener invocation order 【发布时间】:2019-06-01 08:16:27 【问题描述】:我正在分别实现EventFiringWebDriver
和WebDriverEventListener
,我需要来自特定事件之前和之后的数据(例如beforeClickOn
和afterClickOn
)。由于我无法在文档中找到任何内容,我想知道是否会发生这样的情况,即之前事件没有立即跟随相应的事件之后?比如:
(beforeEventA, beforeEventB, afterEventA, ...)
那么,我可以依赖 before 和 after 的调用顺序吗?
【问题讨论】:
【参考方案1】:当您实现 WebDriverEventListeners 接口时,这肯定会根据您定义实现方法的方式发生。 我给你举个例子,假设你正在执行一个点击事件,并且在 beforeClickOn 方法中你试图执行刷新页面等操作,所以行为会是这样的:
beforeOnClick->beforeRefresh->afterRefresh->afterOnClick
现在您可以看到,行为完全取决于您希望驱动程序如何执行任务。
希望这会有所帮助。
【讨论】:
当然,如果我从 before/after 方法中调用其他 before/after 方法,这可能会发生。但如果我不这样做,在极少数情况下还会发生吗?拿起你的刷新示例:this answer 展示了通过 WebDriver 刷新页面的五种不同方式,其中没有一种使用点击操作。你能想到这样的情况吗? @beatngu13 WebDriverEventListener 仅侦听驱动程序执行的事件,即,如果我们通过您共享的示例链接并在这种情况下选择我们发送 F5 键的第一个示例,即使刷新操作是执行我们的驱动程序的唯一参与是在这种情况下发送密钥 F5 驱动程序没有采取任何刷新操作(即事件)。所以它不会被事件监听器监听。总而言之,据我所知,没有任何这样的情况下,之前事件没有立即跟随其相应的之后事件。如果你发现了什么,请告诉我。以上是关于EventFiringWebDriver / WebDriverEventListener 调用顺序的主要内容,如果未能解决你的问题,请参考以下文章
Sometimes we can pretend we have never been to some places.