【发布时间】:2018-04-04 02:47:23
【问题描述】:
我是一名 QA 自动化分析师,负责测试多平台网上银行应用程序。对于我们的自动化测试,我们使用 RubyMine 套件和 Gherkin/Cucumber、Ruby 脚本步骤和 Selenium-webdriver、Watir 和页面对象 gems/库。
我有许多脚本,如果没有人工干预,我无法完全自动化,其中包括通过 Telerik Fiddler 阻止某些网络调用以生成警告页面或错误消息等。我们自动化的未来将通过 RubyMine 来实现而不是 Fiddler 用于网络阻塞。我知道有一种方法可以在 Chrome 中使用 Inspect Element 和使用 启用请求阻止 的网络菜单来执行此操作。但是,我想不出一种通过 Ruby/Selenium 强制 Chrome 阻止给定请求的方法。唯一的方法是自己手动完成,因此我实际上无法根据需要自动执行这些操作。
那么,我的问题是——这是否有可能使用 Selenium-webdriver 自动阻止请求?如果是这样,我应该从哪里开始寻求帮助?
谢谢。
【问题讨论】:
-
要阻止 URI,请在自定义代理上启动浏览器或通过 Selenium 调用 DevTool API 或使用 Web 扩展。
-
谢谢!我现在就看看这个!
-
因此研究一下,DevTools API 是我们可以使用的最有可能的解决方案。但是,我没有看到如何将其用于我们想做的事情的示例。我正在考虑调用 RequestPattern 并使用 YAML 变量代替我希望阻止的请求,但我没有看到失败的调用或返回 404 错误的能力,例如。您是否知道该 API 中的哪些调用可以完成此操作?
-
似乎无法使用 Selenium/DevTool 更改响应/状态,因为它需要直接侦听套接字以获取事件。 puppeter 看起来相当简单。
标签: ruby google-chrome selenium network-programming browser-automation