51Testing软件测试论坛

标题: 为什么我获取不到这些请求呢? [打印本页]

作者: q651231292    时间: 2020-9-15 17:40
标题: 为什么我获取不到这些请求呢?
本帖最后由 q651231292 于 2020-9-15 17:44 编辑

技术框架:selenium + browsermob-proxy
selenium 获取页面元素
browsermob-proxy 获取请求信息
场景1:打开Chrome,输入localhost:8082,在NetWork中可以看到有23个请求,并且其中有我要的业务请求
如附件8.png所示

场景2:通过selenium + browsermob-proxy程序,打开localhost:8082,只能获取到6个请求,其他请求丢失了,这是为什么呢?
如附件9.png所示

  1. from browsermobproxy import Server
  2. from selenium import webdriver
  3. import os
  4. from urllib import parse
  5. from time import sleep

  6. server = Server(r'/Users/renguanyu/app/browsermob-proxy/2.1.4/bin/browsermob-proxy')
  7. server.start()
  8. proxy = server.create_proxy()

  9. chromedriver = "/usr/local/bin/chromedriver"
  10. os.environ["webdriver.chrome.driver"] = chromedriver
  11. url = parse.urlparse (proxy.proxy).path
  12. chrome_options = webdriver.ChromeOptions()
  13. chrome_options.add_argument('--ignore-certificate-errors')
  14. chrome_options.add_argument("--proxy-server={0}".format(url))
  15. driver = webdriver.Chrome(chromedriver,chrome_options =chrome_options)
  16. driver.implicitly_wait(60)
  17. proxy.new_har("http://localhost:8082/", options={'captureHeaders': True,'captureContent': True})
  18. driver.get("http://localhost:8082/")
  19. sleep(3)

  20. # 打印network
  21. result = proxy.har
  22. log = result["log"]
  23. entries = log["entries"]
  24. list = []
  25. for entrie in entries:
  26.     request = entrie["request"]
  27.     request_url = request["url"]
  28.     response = entrie["response"]
  29.     status = response["status"]

  30.     dict = {
  31.         "url": request_url,
  32.         "status": status
  33.     }
  34.     list.append(dict)

  35. # sleep(30)
  36. print("request_list")
  37. for item in list:
  38.     print(item)
  39. print("request_list_length", len(list))

  40. proxy.close()
  41. driver.quit()
复制代码












欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2