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

kyr*_*nia 2 selenium webdriver selenium-webdriver

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

我目前使用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)
Run Code Online (Sandbox Code Playgroud)

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

注意 - 有一个类似的问题(没有答案) - 将Selenium/Webdriver/HtmlUnit限制到某个域 - 但它已经有四年了,我认为Selenium从那时起已经发展了很多.

kyr*_*nia 5

感谢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)
Run Code Online (Sandbox Code Playgroud)