Dan*_*rin 7 python selenium google-chrome-devtools selenium-chromedriver selenoid
我正在尝试使用 CDP 运行测试,
webdriver.execute_cdp_cmd('Network.enable', {})
Run Code Online (Sandbox Code Playgroud)
使用远程网络驱动程序(在 Selenoid 中)。但出现此错误:
AttributeError:“WebDriver”对象没有属性“execute_cdp_cmd”。在本地环境下效果很好。我尝试使用 Selenium 3.141.0 和 4.1.3。
我熟悉 PyCDP 文档(https://py-cdp.readthedocs.io/en/latest/getting_started.html),但我不知道如何正确使用它。
为什么它不能与远程网络驱动程序一起使用?有人有在 Selenium 4 中使用 python 执行 CDP 命令的示例吗?
我使用以下功能:
功能= {'loggingPrefs':{'浏览器':'全部'},'goog:loggingPrefs':{'性能':'全部'},“browserName”:“chrome”,“browserVersion”:“99.0”,“ selenoid:options": { "enableVNC": True, "enableVideo": False } }
if request.config.getoption('--remote'): driver = webdriver.Remote(command_executor='selenoid.dev:4444/wd/hub',desired_capability=功能, options=选项)
远程 Web 驱动程序似乎不支持 CDP。
找到了这个问题的甜蜜解决方法:
import json
def send(driver, cmd, params={}):
resource = "/session/%s/chromium/send_command_and_get_result" % driver.session_id
url = driver.command_executor._url + resource
body = json.dumps({'cmd': cmd, 'params': params})
response = driver.command_executor._request('POST', url, body)
return response.get('value')
send(webdriver, 'Network.enable', {})
Run Code Online (Sandbox Code Playgroud)
来源和相关讨论:https://github.com/SeleniumHQ/selenium/issues/8672
| 归档时间: |
|
| 查看次数: |
4027 次 |
| 最近记录: |