我试图在远程模式下运行seleniumwire驱动程序。问题是我不太理解官方文档中的一些说明:https://pypi.org/project/selenium-wire/#all-options
options = {
'addr': 'hostname_or_ip' # Address of the machine running Selenium Wire. Explicitly use 127.0.0.1 rather than localhost if remote session is running locally.
}
driver = webdriver.Remote(
command_executor='http://www.example.com',
seleniumwire_options=options
)
我在哪里找到IP的主机名?起初,我认为这可能是我用来连接到硒网格的地址,就像这样的"http://hub.selenium-grid:4444/wd/hub"。但是它抛出了一个错误:
E seleniumwire.thirdparty.mitmproxy.exceptions.ServerException: Error starting proxy server: gaierror(-2, 'Name or service not known')
所以,如果它不是正确的'addr',我应该用什么代替?
我找到了一个解决方案:https://github.com/wkeeling/selenium-wire/issues/327当我使用真实ip时,它对我有效,而不是127.0.0.1我希望它会对你有用。
我的代码(端口9922是任意的,只要端口没有被使用):
options.add_argument('--proxy-server=192.168.64.131:9922')
seleniumwire_options = {
'suppress_connection_errors': False,
'auto_config': True,
'addr': '192.168.64.131',
'port': 9922
}
driver = webdriver.Remote(
command_executor="http://192.168.64.131:4444/wd/hub",
desired_capabilities=options.to_capabilities(),
seleniumwire_options=seleniumwire_options
)