是否可以使用webdriver.js观察postMessages?

时间:2016-05-17 09:07:40

标签: javascript selenium selenium-webdriver

一旦网页上的iframe将特定的postMessage发送到父窗口,我想让Selenium执行某些操作。为了做到这一点,我需要从测试运行器访问浏览器所在的网页的window对象(以便我可以直接在测试中观察window上的postMessages运行者),或以某种方式将浏览器中执行的javascript连接到在节点测试运行器中执行的javascript(将测试运行器的回调传递给将在窗口接收postMessage时调用的浏览器,或其他东西)。有没有办法做到这一点?谷歌对此没有帮助: - (

更新:嗯,executeAsyncScript看起来很有前途;我想知道我是否可以听取postmessages,然后通知测试运行员提供的回调,即收到特定的邮件消息。

1 个答案:

答案 0 :(得分:1)

@azangru过去两年你有没有找到解决方案?

我尝试了executeAsyncScript,理论上它可以工作,除了它似乎阻止其他操作完成直到它结算。

TypeScript中的代码模型:https://gist.github.com/JoshuaKGoldberg/a0c5fe2812a06318e0eb2ffdc9e17021

提起Selenium问题:https://github.com/SeleniumHQ/selenium/issues/5972

与此同时,您可以使用要传输的数据的页面console.info字符串形式,然后在Selenium中连续轮询日志。不是很好但总比没有好......?