You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Selenium+BrowserStack代理配置无效问题求助

BrowserStack代理配置无效排查方案

问题描述

尝试为BrowserStack任务配置代理,但始终无法生效。已启动BrowserStack Local服务器并通过语言绑定设置参数,也尝试在webdriver.Remote中添加相关选项,程序无报错,但截图显示未使用代理,请求协助排查。

代码示例

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from browserstack.local import Local

desired_cap = {
    'bstack:options' : {
        "os" : "Windows",
        "osVersion" : "10",
        "projectName" : "Take Screenshot Sample Test",
        "buildName" : "Take Screenshot Sample Build",
        "local" : "true",
        "seleniumVersion" : "4.0.0",
    },
    "browserstack.local" : "true",
    "browserstack.debug" : "true",
    "browserName" : "Chrome",
    "browserVersion" : "103.0",
    "forceLocal" : "true",
    "forceProxy" : "true",
}
local = Local()
local_args = { "key": "mykey" }
local_args["localproxyHost"] = "myproxyip"
local_args["localproxyPort"] = "8080"
local_args["localproxyUser"] = "user"
local_args["localproxyPass"] = "password"
local_args["forceProxy"] = "true"
local_args["forceLocal"] = "true"
local_args["state"] = "connected"
local_args["tunnelIdentifier"] = "tom"
local_args["localIdentifier"] = "tomjohn"
local.start(**local_args)
driver = webdriver.Remote(
    command_executor='https://myuser:mykey@hub-cloud.browserstack.com/wd/hub',
    desired_capabilities=desired_cap)
driver.get("https://www.whatismyipaddress.com")
driver.save_screenshot('screenshots.png')
driver.quit()

排查步骤

  • 统一Capability参数位置:Selenium 4+版本要求BrowserStack相关参数统一放在bstack:options下,你当前在外层重复设置了browserstack.local、forceLocal、forceProxy,这些旧格式参数可能被忽略,需全部移至bstack:options内。
  • 绑定隧道标识:启动Local服务器时设置了tunnelIdentifier: "tom",但Desired Capabilities中未对应配置,需在bstack:options添加tunnelIdentifier: "tom",确保测试会话绑定到正确的代理隧道。
  • 移除无效参数:local_args中的state: "connected"是多余参数,Local启动时无需设置,可能干扰正常流程,直接删除。
  • 验证代理服务器连通性:在本地终端用命令测试代理是否可用:curl -x http://user:password@myproxyip:8080 https://www.whatismyipaddress.com,确认代理能正确返回代理IP,排除代理本身的连通或认证问题。
  • 开启Local日志排查:在local_args中添加"v": "true"开启 verbose 日志,查看启动日志中是否有代理连接失败的提示(如认证错误、超时等)。
  • 区分代理场景:
    • 若需BrowserStack Local隧道访问本地资源走代理:确保forceProxy在bstack:options和local_args中都设为true即可。
    • 若需浏览器访问公网走代理:需额外在bstack:options中添加浏览器代理配置,以Chrome为例:
      'bstack:options': {
          # ...其他原有参数
          "chromeOptions": {
              "args": [
                  "--proxy-server=http://user:password@myproxyip:8080"
              ]
          }
      }
      

内容的提问来源于stack exchange,提问作者Tom John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 03:10:16