簡體   English   中英

有沒有辦法使用 Selenium JavascriptExecutor 從 Java 中的 JavaScript 返回對象?

[英]Is there a way to return an Object from JavaScript in Java using Selenium JavascriptExecutor?

我在使用 Java 運行 JavaScript 文件時遇到問題,使用 Selenium 我登錄我的應用程序並使用 JavascriptExecutor 運行我的 JavaScript 文件,但我無法從它接收有效的返回,只有 null。

這是我的代碼片段:

public static void runJavascriptFile(ChromeDriver driver) throws Exception {
        System.out.println("Start");
        Object js = driver.executeScript(TestHelper.getTextFromFile("demo-client/scripts/get-test.js"));
        System.out.println(js);
        System.out.println("End");

    }

我的js文件包含以下內容:

async function getPeople() {
    let response = await fetch("https://swapi.dev/api/people/1/", { method: "GET" })
    console.log("This is from my Javascript File from Java.")
    return response.status;
}
let result = await getPeople();
console.log("result", result);

在這里,我可以在 Chrome 瀏覽器控制台中看到 JavaScript 文件的返回,但在 Java IDE 中我看不到: BrowserConsoleXJavaConsole

如果有人知道有效的不同方法,請幫忙!

您可以將其解析為字符串:

JavascriptExecutor jsExec = (JavascriptExecutor) driver;
String fileContent = (String) jsExec.executeScript("some js code here to get the file content");
System.out.println(fileContent);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM