找不到JSONOBject哈希

时间:2017-05-18 05:20:39

标签: selenium selenium-webdriver selenium-grid2

我正在使用JAVA和Selenium WebDriver开发Test Automation脚本, 我的测试是在云环境中运行的(crossbrowsertesting.com)。 有一个功能可以拍摄浏览器窗口的快照, 当我使用RemoteWebDriver时,这行代码工作正常,但需要用WebDriver替换它,因为没有理由得到windowHandles。 但是我现在正在跟踪错误,说明 “对于类型WebDriver”

,方法getSessionId()未定义
snapshotHash=myTest.takeSnapshot(driver.getSessionId().toString());

// takeSnapshot方法:

public String takeSnapshot(String seleniumTestId) throws UnirestException {
        System.out.println("Screen Shots Taken.");

        /*
         * Takes a snapshot of the screen for the specified test.
         * The output of this function can be used as a parameter for setDescription()
         */
        HttpResponse<JsonNode> response = Unirest.post("http://crossbrowsertesting.com/api/v3/selenium/{seleniumTestId}/snapshots")
                .basicAuth(username, api_key)
                .routeParam("seleniumTestId", seleniumTestId)
                .asJson(); 
        // grab out the snapshot "hash" from the response
         snapshotHash = (String) response.getBody().getObject().get("hash");

        return snapshotHash;
    }

1 个答案:

答案 0 :(得分:0)

我不太明白为什么你需要使用“WebDriver”代替“RemoteWebDriver”? “RemoteWebDriver”是所有Web驱动程序实现的母亲,它应该足以与任何远程网格环境一起工作。我不明白为什么你需要切换到使用“WebDriver”引用,这是“RemoteWebDriver”实现的接口之一。 getSessionId()不是任何接口规范的一部分,但它是RemoteWebDriver提供的直接实现。

getWindowHandles()WebDriver接口规范的一部分,您仍然可以使用它。