python - 使用在 docker 容器中运行的 SeleniumWire 和网页设置标头 SeleniumWire
问题描述
我正在尝试访问使用标头身份验证的网页。由于 Selenium 不直接支持标头,因此我尝试使用 SeleniumWire。但是我遇到了问题。我使用 docker 容器内的浏览器运行我的 selenium 测试。以下是我的尝试:
def interceptor(request):
request.headers['USERNAME'] = "test"
request.headers['ID'] = "tester-dev"
sw_options = {
'auto_config': False,
'addr': '127.0.0.1',
'port': 9666,
}
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(
'--proxy-server=http://host.docker.internal:9666')
chrome_options.add_argument('--ignore-certificate-errors')
driver = webdriver.Remote(
desired_capabilities=chrome_options.to_capabilities(),
seleniumwire_options=sw_options
)
driver.request_interceptor = interceptor
driver.get(
"http://host.docker.internal:9555/index/")
for request in driver.requests:
if request.response:
print(
request.url,
request.response.status_code
)
driver.close()
当我尝试访问从与 selenium 测试相同的 docker-compose 启动的网页http://localhost:9555/index/时,我在127.0.0.1:9666上创建了一个代理,我得到502 bad gateway。真的很想知道为什么会这样。我不明白为什么上面的代码不起作用。
解决方案
推荐阅读
- react-native - React-Native 无法正确使用 jni 库
- javascript - 匹配浮点数但不匹配由点分隔的日期
- jestjs - 出现错误 TypeError: (0 , (_jestUtil || _load_jestUtil(...)).validateCLIOptions) is not a function when running jest
- wordpress - Woocommerce 和 WPML:创建和跟踪产品
- php - PHP 注册表单的未知问题
- node.js - 打开我的应用程序时无法获取/错误
- sql - 有没有办法像 SQLCMD -q 选项一样在 ADO.NET 连接上执行 SQL 命令?
- javascript - 在 redux 上分配给函数参数“状态”无法编译
- node.js - 使用 Node/Express 不断收到“发送后无法设置标题”
- python - python或R的点列表中三个点的半径