当前位置: 首页 > 知识库问答 >
问题:

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

查宜民
2023-03-14

我在firefox中使用SeleniumWebDriver。我想知道是否有一个设置,我可以改变,使它只要求从某些领域的资源。(特别是我希望它只请求与网页本身位于同一域的内容)。

用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提供的内容,而不是例如所有由其他域托管的跟踪内容通常会被请求。希望可以通过修改火狐中的配置文件设置或扩展来实现。

注意-有一个类似的问题(没有答案)-将Selenium/Webdriver/HtmlUnit限制在某个特定的领域-但它已经有四年的历史了,我认为Selenium从那时起已经进化了很多。

共有2个答案

段劲
2023-03-14

我认为这在硒中仍然是不可能的。但您仍然可以通过使用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);

希望这对你有帮助。如果你需要进一步的帮助请回来

祁烨
2023-03-14

多亏了Vicky(我遵循了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)
 类似资料:
  • 它说我需要白名单一个域,但我在控制台中找不到任何地方这样做,除了我创建的动态链接。我尝试运行下面的代码,但我得到 我不应该使用动态链接进行火警认证吗?如果是这样,我在控制台的什么地方白名单域,因为我找不到它。

  • 问题内容: 这是此问题的后续操作- 想创建一个表单填充器-java,jsp,html是否足够?。我反复在网站上填写表格(例如,预约私人牙医)。 1-循环。对于每次迭代,除“下拉框-状态”的值外,所有数据均相同。 例如。每次迭代中“文本框-名称”,“文本框-年龄”保持不变。但是,状态下拉列表会在迭代中更改为NY,TX,CA。 2-如果最后一页中出现某些文本,请执行一项操作(发送邮件)。 我该如何做s

  • 我正在开发Selenium,目前我有一个连接到两个运行linux和所有浏览器的虚拟机的集线器。 我能够启动浏览器,直到它突然停止。火狐或任何其他浏览器都不会启动。我得到以下错误。 45000 ms后无法连接到端口7055上的主机127.0.0.1。 我运行Selenium服务器独立2.26与火狐16.0.2. 请帮忙。

  • 我有一个关于使用无效证书通过https测试网站的问题。你能帮忙吗?我正在临时服务器上测试一个网站。它需要https,并且使用了无效的证书,该证书属于生产服务器。因此,当我访问该网站时,FireFox会显示“此连接不受信任页面”。我已经设法让firefox跳过页面;但是,如果我不使用Selenium(Python绑定)运行它,它将再次显示“Untrusted”页面。所以,我做了更多的研究,发现: h

  • 我正试图在我的电脑中第一次使用硒。但是我在第一行有一个错误: 我的代码: 错误消息: 检查Selenium服务器版本:开始:预下载开始:下载开始:后下载检查chromedriver版本:开始:预下载开始:下载开始:后下载检查geckodriver版本:开始:预下载开始:下载开始:后下载检查phantomjs版本:开始:预下载开始:下载开始:后下载 [1]"连接到远程服务器"无法打开火狐浏览器。客户

  • 在我的应用程序中,我可以使用IP地址连接到服务器,但当我尝试使用DNS主机名连接时,我无法通过Android emulator连接。在logcat中,我得到以下错误: 07-10 10:22:42.312:我/编导(848):跳过了45帧!应用程序可能在其主线程上做了太多工作。 07-10 10:24:00.181:我/编导(848):跳过了35帧!应用程序可能在其主线程上做了太多工作。 07-1