【问题标题】:Python script using selenium to obtain Chrome Devtools content使用 selenium 获取 Chrome Devtools 内容的 Python 脚本
【发布时间】:2023-04-07 14:15:01
【问题描述】:

我在尝试使用 python 脚本在 Chrome Devtools 中获取“网络”选项卡的内容时遇到了一些困难。
该脚本应使用 Selenium 库来执行此操作。
我想知道这是否可能,如果可以,你会怎么做?
我已经阅读了一些建议的解决方案,但没有一个对我有用。

chrome_path = r"C:\Python27\chromedriver_win32/chromedriver.exe"
chrome_options = Options()  
chrome_options.add_argument("--headless")  
chrome_options.add_argument("window-size=1200,1100")


driver = webdriver.Chrome(executable_path=chrome_path,chrome_options=chrome_options)
driver.get("https://www.container.io/login")


elementUser = driver.find_element_by_id('username')
elementPassword = driver.find_element_by_id('password')
elementUser.send_keys(user)
elementPassword.send_keys(password)

我想在“网络”选项卡上捕获的是:

Query String Parameters
   access_token: XXXXXXXXX
   evnId: XxxXXx
   sortBy: xxXXxx

【问题讨论】:

  • 您到底想捕捉什么?是否要捕获网络流量?
  • 我想在登录网站后获取访问令牌。它出现在“网络”选项卡上,其中一种 GET 方法
  • 无法使用 selenium 选择网络流量,因为 Devtools 窗口不存在选择器。它是否保存为cookie?听起来它是通过服务器的响应发送的(对于 GET 请求),所以为了让您将它用于另一个 GET 的身份验证,它必须被存储。您可以使用 driver.get_cookies() 访问 cookie。但是,如果没有,那么恐怕您可以尝试的最后一件事就是查看服务器的响应并将其拆开。但是在 Selenium 中无法解析响应,因为核心团队的 @JimEvans 在这里回复 stackoverflow.com/a/6512785/2453382
  • Cookie 可能是个好主意,我现在就检查一下。

标签:
python
selenium
google-chrome-devtools