首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome DevTools获取websocket地址

Chrome DevTools获取websocket地址
EN

Stack Overflow用户
提问于 2018-02-24 04:27:03
回答 2查看 849关注 0票数 2

当使用Chrome作为Selenium webdriver时,如下所示:

代码语言:javascript
复制
from selenium import webdriver
driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.close()

stdout的第一行总是如下所示:

代码语言:javascript
复制
DevTools listening on ws://127.0.0.1:13007/devtools/browser/53aa377a-3789-4a8a-a565-dfd0f3622d38

我怎样才能用代码获得这个地址?我没有看到可能包含此信息的driver实例的任何明显的方法或属性(仅从名称判断)。

EN

回答 2

Stack Overflow用户

发布于 2019-12-18 22:27:39

我不知道如何直接使用webdriver获取它。

但这里有两种选择:

代码语言:javascript
复制
from selenium import webdriver

tmpChromeDir = 'c:\tmp\ChromeTmp'

options = webdriver.ChromeOptions()
options.add_argument('user-data-dir=' + tmpChromeDir)

driver = webdriver.Chrome(chrome_options=options)

with open(tmpChromeDir + '/DevToolsActivePort') as fp:
    port = fp.readline().replace("\n", "")
    path = fp.readline().replace("\n", "")

print('---> ws://127.0.0.1:' + port + path)

代码语言:javascript
复制
from selenium import webdriver
import requests

options = webdriver.ChromeOptions()
options.add_argument('remote-debugging-port=9222')

driver = webdriver.Chrome(chrome_options=options)

result = requests.get('http://127.0.0.1:9222/json/version').json()

print(result['webSocketDebuggerUrl'])
票数 2
EN

Stack Overflow用户

发布于 2018-02-25 11:34:57

主机driver.command_executor._conn.host

rest:如果可以做到这一点,我非常确定您将需要使用you驱动程序来执行javascript。我找不到任何明显的方法来收集这些信息,但我很好奇为什么它在运行时对您有用?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48955762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档