【发布时间】:2015-01-07 13:23:45
【问题描述】:
根据 selenium 文档,webdriver 客户端和浏览器之间的交互是通过JSON Wire Protocol 完成的。基本上,用 python、ruby、java 编写的客户端将 JSON 消息发送到 Web 浏览器,Web 浏览器也用 JSON 响应。
有没有办法在运行 selenium 测试时查看/捕获/记录这些 JSON 消息?
例如(在 Python 中):
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://google.com')
driver.close()
当我实例化驱动程序(在本例中为 Chrome)时,我想查看 python selenium webdriver 客户端和浏览器之间传递的 JSON 消息:webdriver.Chrome(),当我获取页面时:driver.get('http://google.com') 以及何时我正在关闭它:driver.close()。
仅供参考,在#SFSE: Stripping Down Remote WebDriver 教程中,它是通过捕获运行脚本的本地 机器和远程 selenium 服务器之间的网络流量来完成的。
我将这个问题标记为Python 特定的,但真的很高兴有任何指针。
【问题讨论】:
-
查看Selenium Webdriver API documentation 似乎没有任何可访问的方式来使用该库并让它共享它正在生成/接收的 JSON。我也可能倾向于尝试捕获网络流量。
-
@ydaetskcoR 谢谢,这是我目前正在考虑的,但不确定如果客户端和实际驱动程序都在本地计算机上是否可行。决定询问社区是否有其他选择。
-
这可能是错误的方法,但您总是可以启动一个 VM 并在其上放置一个 selenium 服务器,这样您就可以捕获虚拟网络层上的网络流量。
-
我认为这可能会有所帮助:webmasters.stackexchange.com/questions/13339/…
-
@Richard 谢谢,我认为这个话题更多的是关于浏览器与互联网的交互..
标签: python json selenium selenium-webdriver protocols