zoukankan      html  css  js  c++  java
  • selenium中获取http请求/返回

    我们在使用selenium做UI自动化时,很多情况下定位问题困难,请求的唯一ID是什么?当时请求出错了返回的是什么?怎么定位?

    光UI截图还是有点不直观,有时候我们会想怎么获取请求或返回response?

    一、selenium自身不支持

     首先在selenium源生的API支已经表明不支持了,github上也说明了,以后也不会加了

      

     google上讨论的链接:https://code.google.com/p/selenium/issues/detail?id=141

    二、解决方案

    这时我们可以换个思路来思考,浏览器都有F12的功能,我们能不能通过这个方式来获取内容。看看解决方法:

    Java版本:

    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
    cap.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
    
    LogEntries logs = driver.manage().logs().get("performance");

    Python版本:

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    ca = DesiredCapabilities.CHROME
    ca["goog:loggingPrefs"] = {"performance": "ALL"}
    driver = webdriver.Chrome(desired_capabilities=ca)
    driver.get("http://xxx")
    logs = driver.get_log("performance")
    print(logs)

    这时,你会看到所有的请求,及返回内容,包括header

    三、其它方案:

    网上还有其它的方法。下面这里给链接,就不详细说明了:

    1、selenium-wire  方法。具体可以看pypi的文档。有个不便处就是。log全打出来了

    2、Browser-Mob  方法。建立代理的一个类似方案。需要安装java及启动proxy

    Email:362299908@qq.com
  • 相关阅读:
    Muddy Fields
    LightOJ 1321
    LightOJ 1085
    LightOJ 1278
    LightOJ 1341
    LightOJ 1340
    vijos 1426 背包+hash
    vijos 1071 01背包+输出路径
    vijos 1907 DP+滚动数组
    vijos 1037 背包+标记
  • 原文地址:https://www.cnblogs.com/landhu/p/15524801.html
Copyright © 2011-2022 走看看