2013-01-09 100 views
4

我通過Capybara使用Selenium來自動執行使用Cucumber的測試。我正在加載一些在CDN上引用內容的頁面。我沒有興趣創建超過必要的更多請求,並且無故擊中CDN。我想配置Selenium以某種方式忽略對該域的請求。在Selenium中阻止或重定向請求到特定路徑或域

迅捷具有這樣的方法:

Browser.ignore_pattern("regex pattern") 

這將忽略創建匹配的任何請求。我想以某種方式複製此功能。有沒有辦法覆蓋DNS轉到0.0.0.0或其他方式來配置內部Selenium代理?

回答

2

您應該可以使用在https://github.com/jarib/browsermob-proxy-rb上找到的browsermob-proxy-rb gem將您的CDN列入黑名單。

require 'selenium/webdriver' 
require 'browsermob/proxy' 

server = BrowserMob::Proxy::Server.new("/path/to/download/browsermob-proxy") #=> #<BrowserMob::Proxy::Server:0x000001022c6ea8 ...> 
server.start 

proxy = server.create_proxy #=> #<BrowserMob::Proxy::Client:0x0000010224bdc0 ...> 

profile = Selenium::WebDriver::Firefox::Profile.new #=> #<Selenium::WebDriver::Firefox::Profile:0x000001022bf748 ...> 

# This is the line I added 
proxy.blacklist(/path.to.CDN.com/) 

profile.proxy = proxy.selenium_proxy 

driver = Selenium::WebDriver.for :firefox, :profile => profile 

driver.get "http://www.yoursite.com" 

下面主要是從github上上市的README被盜

相關問題