Selenium / Firefox 可以连接到的白名单域

Whitelist domains Selenium / Firefox can connect to

我在 firefox 中使用 Selenium webdriver。我想知道是否有一个设置可以更改为仅从某些域请求资源。 (具体来说,我希望它只请求与网页本身位于同一域的内容)。

我目前的设置,写在Python,是:

 from selenium import webdriver
 firefox_profile = webdriver.FirefoxProfile()
 ## Here, I change various default setting in Firefox, and install a couple of monitoring extensions
 driver = webdriver.Firefox(firefox_profile)
 driver.get(web_address)

我想做的是,如果我指定网址 wwww.domain.com,则只加载 domain.com 提供的内容,而不是例如通常会请求的由其他域托管的所有跟踪内容。希望可以通过更改 firefox 中的配置文件设置或通过扩展来实现。

注意 - 有一个类似的问题(没有答案) - Restricting Selenium/Webdriver/HtmlUnit to a certain domain - 但它已经四年了,我认为 Selenium 从那时起已经发展了很多。

我认为在 selenium.But 中仍然不可能,您仍然可以通过使用像 browsermob 这样的代理来实现。 Webdriver 与 browsermob 代理集成良好。

java

中的示例伪代码
    //LittleProxy-powered 2.1.0 release

    LegacyProxyServer server = new BrowserMobProxyServer();

    server.start(0);

    // Blacklist websites
    server.blacklistRequests("https?://.*\.blocksite\.com/.*", 410);//these sites will be blocked

    /// get the Selenium proxy object
    Proxy proxy = ClientUtil.createSeleniumProxy(server);

    // configure it as a desired capability
    DesiredCapabilities capabilities = new DesiredCapabilities();

    capabilities.setCapability(CapabilityType.PROXY, proxy);

    // initialize the driver with the capabilities   ;
    Webdriver driver = new FirefoxDriver(capabilities);

希望这对您有所帮助you.Kindly 如果您需要任何进一步的帮助,请回来

多亏了 Vicky(我遵循了她使用代理设置的方法 - 虽然直接来自 Selenium),下面的代码将更改 firefox 中的代理设置,这样它就不会连接到域,除了白色-列表。

我怀疑一些设置更改是不必要的,对于大多数用途来说可以省略。 Python.

中的代码
    from selenium import webdriver
    firefox_profile = webdriver.FirefoxProfile()

    ## replace desired_domain.com below with whitelisted domain. Separate domains by comma.
    firefox_profile.set_preference("network.proxy.no_proxies_on","localhost,127.0.0.1,desired_domain.com")      

    firefox_profile.set_preference("network.proxy.backup.ftp","0.0.0.0")
    firefox_profile.set_preference("network.proxy.backup.ftp_port",1)
    firefox_profile.set_preference("network.proxy.backup.socks","0.0.0.0")
    firefox_profile.set_preference("network.proxy.backup.socks_port",1)
    firefox_profile.set_preference("network.proxy.backup.ssl","0.0.0.0")
    firefox_profile.set_preference("network.proxy.backup.ssl_port",1)
    firefox_profile.set_preference("network.proxy.ftp","0.0.0.0")
    firefox_profile.set_preference("network.proxy.ftp_port",1)
    firefox_profile.set_preference("network.proxy.http","0.0.0.0")
    firefox_profile.set_preference("network.proxy.http_port",1)
    firefox_profile.set_preference("network.proxy.socks","0.0.0.0")
    firefox_profile.set_preference("network.proxy.socks_port",1)
    firefox_profile.set_preference("network.proxy.ssl","0.0.0.0")
    firefox_profile.set_preference("network.proxy.ssl_port",1)
    firefox_profile.set_preference("network.proxy.type",1)
    firefox_profile.set_preference("network.proxy.share_proxy_settings",True)       

    driver = webdriver.Firefox(firefox_profile)
    driver.get(web_address_desired)