【问题标题】:Is there any way to send authornicated Post and Get API requests with Selenium?有没有办法使用 Selenium 发送授权的 Post 和 Get API 请求?
【发布时间】:2021-12-31 22:11:11
【问题描述】:

我可以分享实时场景。

第 1 步:午餐浏览器执行一些功能测试,例如导航到某个页面并上传图像/视频文件

第 2 步:发送经过身份验证的发布请求。

{

  "predicateParams": {

    "type":"dam:Asset",

    "p.offset": "0",

    "p.limit": "-1"

  },"dateParams": {

  "group.1_daterange.lowerBound":"2021-11-19T00:10:15",

  "group.1_daterange.upperBound":"2021-11-19T23:59:15"

  } 

}

第 3 步:阅读响应并从响应中找到预览 URL。

{
    "totalAssetsModifiedOrCreated": 1,
    "totalAssetsDeleted": 0,
    "deletedAssets": [],
    "hits": [
        {
            "path": "/content/dam/global-asset-library/Products/automation/download.jpg",
            "renditions": [
                "/content/dam/global-asset-library/Products/automation/download.jpg/jcr:content/renditions/cq5dam.web.1280.1280.jpeg"
            ],
            "metadata": {
               //Asset metadata
            },
            "previewLink": "https://qa.dam.com/content/dam/global-asset-library/Products/automation/download.jpg?qtm=1637340248265"
        }
    ],
    "status": {
        "code": "200",
        "message": "Search results found.",
        "success": true
    }
}

第 4 步:使用上述响应中的预览链接发送获取请求。

{

  "predicateParams": {

    "type":"dam:Asset",

    "p.offset": "0",

    "p.limit": "-1"

  },"dateParams": {

  "group.1_daterange.lowerBound":"2021-11-17T00:10:15",

  "group.1_daterange.upperBound":"2021-11-18T23:50:15"

  } 

}

第 5 步:验证返回的先前发布的资产(例如:图片) Response of get request

我们非常感谢您的帮助。谢谢。

【问题讨论】:

  • 如果您正在寻找可以为您工作的人,那没关系,但不是在这里,而且不是免费的。
  • 正如你对这个问题的评论stackoverflow.com/questions/70016384/… 这是一个继续要求。请让我们知道您在哪一步失败以及您收到的错误消息以及您尝试了什么?
  • @Nandan A 如何在发送 Post 请求时发送授权(用户名和密码)。我试过 RestAssured.basic("dell-sprinklr", "DellSprinklr321%$#@#"); RestAssured.baseURI = url;但收到 401 响应。
  • 401 代表未经授权。您无权访问该 API。
  • 是的,401 代表未经授权。但我只传递有效的授权细节。使用邮递员可以使用相同的详细信息访问该 api。

标签: api selenium automation postman


【解决方案1】:

Authorization(Basic) 细节可以通过

given().auth().preemptive().basic("username", "password")

preemptive() 方法将发送用户名和密码,无论服务器是否需要身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2022-11-23
    • 2020-11-13
    • 1970-01-01
    • 2021-10-14
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多