【问题标题】:How do I make selenium see the network requests made by a web browser?如何让 selenium 看到网络浏览器发出的网络请求?
【发布时间】:2014-06-10 17:14:55
【问题描述】:

我有一个 dotnet Selenium Web 驱动程序应用程序。

当我测试页面时,我需要确认的一件事是页面上的 Flash 对象从我网站上的内容存储中提取了正确的内容。 (即 Flash 对象应该从 /stuff/info.txt 加载内容并将该内容包含在动画中。)

作为一个查看此内容的人,我可以使用 chrome 网络选项卡并查看 /stuff/info.txt 已被访问。

如何让 Selenium 执行类似的监视并查看网络浏览器发出的网络请求?

【问题讨论】:

    标签: selenium-webdriver


    【解决方案1】:

    这不是我写的,也没有测试过,但是有人在这里做了:http://www.softwareishard.com/blog/firebug/automate-page-load-performance-testing-with-firebug-and-selenium/

    基本上所有请求都通过 HAR(Http ARchive 文件)中的 netexport 和 firebug 插件导出

    如果您试一试,请给我们您的反馈!

    干杯!

    【讨论】:

    • 听起来很有趣。我得试试。但是对于这个问题,是否可以从一个url获取远程ajax数据的内容?
    • 使用 netexport 是访问已发出的 ajax 请求列表的唯一方法。 Selenium 不允许您直接检索此类信息。
    • 我有一些空闲时间来深入研究这个主题。而 netexport/firebug 解决方案并不是唯一的。其实更简单的是使用browserMob:assertselenium.com/2012/11/02/…
    • 那是另一个有趣的链接。感谢那。这个问题实际上与验证远程调用是否获取正确的数据有关。所以我认为它不能通过任何方式完成。
    • 为了完全确定,我从另一个角度进行了检查。 selenium 所依赖的 jsonWireProtocol 确实允许它:code.google.com/p/selenium/wiki/JsonWireProtocol。作为一种解决方法,您可以使用 javascript 编码来实现它。用于导出 har 数据的对象可用。然后可以通过 selenium 执行此 javascript 代码。
    【解决方案2】:

    我假设您想自动化浏览器开发工具所做的过程。类似于 firebug 的东西,但用于使用 Code 进行验证。

    我不相信 Selenium 有这样的功能。目前,您将无法实现这一目标。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 2018-05-13
    相关资源
    最近更新 更多