【问题标题】:Access made by selenium does not appear硒进行的访问没有出现
【发布时间】:2026-02-09 10:20:10
【问题描述】:

我正在尝试使用以下设置在 localhost 站点上进行自动化测试:

Python 3.8.10
硒 3.141.0
火狐 90.0
Burp Suite 社区版 v2021.6.2

我正在使用地址为 127.0.0.1:8080 的 Burp 代理。

我在这里测试了几个可用的示例。以下代码是迄今为止效果最好的代码。

from selenium import webdriver

firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

PROXY = "127.0.0.1:8080"

firefox_capabilities['proxy'] = {
    "proxyType": "MANUAL",
    "httpProxy": PROXY,
    "sslProxy": PROXY
}

driver = webdriver.Firefox(capabilities=firefox_capabilities)
driver.get("http://127.0.0.1")

当 driver.get("URL here") 中的 url 不是 localhost 时,此代码可以正常工作。当我输入 url http://127.0.0.1 时,selenium 进行的访问不会出现在 Burp Suite 的 HTTP 历史记录中。代替访问的 url,出现“http://detectportal.firefox.com”。

这是代码中的问题还是我需要做的一些配置?

Burp HTTP History

【问题讨论】:

    标签: selenium-webdriver firefox burp


    【解决方案1】:

    查看 Firefox 代理设置,您可以在其中找到 localhost 连接永远不会定向到代理的声明。

    但这可以通过打开about:config并将选项network.proxy.allow_hijacking_localhost设置为true来更改。

    【讨论】:

    • 谢谢你的回答,罗伯特。我已经在浏览器中完成了这个配置。但我注意到,当我运行 selenium 时,会在禁用此选项的情况下打开 firefox。你知道如何将此设置传递给 selenium webdriver 吗?我希望我不必每次运行代码时都手动修改它。
    • @DaniloEscudero 您应该能够在 Selenium 中指定使用的 Firefox 配置文件:*.com/a/14458405/150978
    • 谢谢,它成功了。解决方案要简单得多,我会在这里发布。注意:我不想加载我的整个浏览器配置文件,我只想将选项 network.proxy.allow_hijacking_localhost 设置为 True。
    【解决方案2】:

    要让 Burp 跟踪 localhost 上的链接,只需将 ("network.proxy.allow_hijacking_localhost", True) 添加到 FirefoxProfile()

    from selenium import webdriver
    
    fp = webdriver.FirefoxProfile()
    fp.set_preference("network.proxy.type", 1)
    fp.set_preference("network.proxy.http", "127.0.0.1")
    fp.set_preference("network.proxy.http_port", 8080)
    fp.set_preference("network.proxy.allow_hijacking_localhost", True)
    fp.update_preferences()
    
    driver = webdriver.Firefox(firefox_profile=fp)
    driver.get('http://127.0.0.1')
    

    【讨论】:

      最近更新 更多