• 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
  • 相关阅读:
    fork()和僵尸进程
    布尔变量面试题
    vue学习之二
    vue学习之一
    圈复杂度
    phpExcel与jq的ajax
    Object.defineProperty与修改某个数组实现监听效果
    mpn不得不说的坑
    论javascript编写优美
    微信小程序之学习
  • 原文地址:https://www.cnblogs.com/landhu/p/15524801.html
Copyright © 2020-2023  润新知