【问题标题】:Is it possible to observe postMessages using webdriver.js?是否可以使用 webdriver.js 观察 postMessages?
【发布时间】:2016-05-17 09:07:40
【问题描述】:

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

更新: 嗯,executeAsyncScript 看起来很有前途;我想知道我是否可以收听帖子消息,然后通知测试运行程序提供的回调收到了特定的帖子消息。

【问题讨论】:

    标签: javascript selenium selenium-webdriver


    【解决方案1】:

    @azangru 在过去的两年里你有没有找到解决这个问题的方法? ?

    我尝试了executeAsyncScript,理论上它可以工作,只是它似乎会阻止其他操作完成,直到它解决。

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

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

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

    【讨论】:

    • 不,恐怕我没有。最终没有最终测试消息。现在看到你的评论我想:当然,Puppeteer 可以做到这一点,但我看到你已经调查过了,发现它不能。
    猜你喜欢
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    相关资源
    最近更新 更多