selenium 是否可以从Java上的API响应中获取元素?

qrjkbowd  于 2022-11-24  发布在  Java
关注(0)|答案(2)|浏览(120)

我是一个Java新手,想问你一个问题。让我们想象一下这样的情况。我使用API生成用于测试的帐户,作为响应,我得到一行代码,例如:

{
 "accountId": "42515896"
}

如何编写方法,从响应中获取“42515896”,并将其插入到我之前声明的某个int变量中?

public class failedAuthorization {
    // created reference variable for WebDriver
    WebDriver driver;

    @BeforeMethod
    public void setup() {

        System.setProperty("webdriver.chrome.driver","C:\\Users\\imagineName.imagineSurname\\chromedriver\\chromedriver.exe");
// initializing driver variable using Chrome Driver
        driver=new ChromeDriver();
        driver.manage().deleteAllCookies();
// launching google.com on the browser
        driver.get("https://login.live.com/");
// maximized the browser window
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);

    }

例如,我有一些API请求,生成我的帐户,作为响应,我得到的数据,我将需要进一步登录。如何使用生成的数据?

ccrfmcuu

ccrfmcuu1#

您可能希望使用某个外部库来解析对Java对象的响应,例如Jackson
简单解决方案(使用JsonNode):

String jsonString = "{'accountId': '42515896'}";
ObjectMapper mapper = new ObjectMapper();
JsonNode actualObj = mapper.readTree(jsonString);
actualObj.get("accountId").textValue(); //returns 42515896
pw9qyyiw

pw9qyyiw2#

可以使用json路径:

public static void main(String[] args) {
        String myJson = "{\"accountId\": \"42515896\"}";
        String accountId = JsonPath.read(myJson, "$.accountId");
        System.out.println(accountId);
    }

从属关系:

<!-- https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path -->
<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.7.0</version>
</dependency>

相关问题