微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用 Selenium Grid 运行 Microsoft Edge 测试,SessionNotCreatedError

如何解决尝试使用 Selenium Grid 运行 Microsoft Edge 测试,SessionNotCreatedError

我目前正在尝试使用 javascript 和 selenium-webdriver 设置 Selenium Grid。我有我的集线器和节点设置,目前在 Chrome 和 Firefox 上运行了成功的测试。但是,我在为 Microsoft Edge 设置测试时遇到了一些麻烦。只是一个拉起谷歌并打印标题的测试。

const { Builder } = require("selenium-webdriver");
const edge = require("selenium-webdriver/edge");
let opts = new edge.Options();

(async function helloSelenium() {
    let driver = new Builder()
        .usingServer("http://XX.XX.XX.XX:4444/wd/hub")
        .forbrowser('edge')
        .setEdgeOptions(opts)
        .build();

    try {
        await driver.get('http://www.google.com')
                    .then(() => driver.getTitle())
                    .then(title => console.log(title))
    }
    finally {
        await driver.quit();
    }
})();

我得到的错误显示在集线器的命令提示符上(节点中没有显示任何内容)。显示如下:

(node:8956) UnhandledPromiseRejectionWarning: SessionNotCreatedError: Unable to create session from {
  "desiredCapabilities": {
    "browserName": "edge","se:CONfig_UUID": null
  },"capabilities": {
    "firstMatch": [
      {
        "browserName": "edge"
      }
    ]
  }
}
Build info: version: '3.141.59',revision: 'e82be7d358',time: '2018-11-14T08:25:53'
System info: host: 'MDEV',ip: 'XX.XX.XX.XX',os.name: '....',os.arch: 'x86',os.version: '10.0',java.version: '1.8.0_291'
Driver info: driver.version: unkNown
    at Object.checkLegacyResponse (C:\Users\Administrator\Documents\sel-testing\node_modules\selenium-webdriver\lib\error.js:553:15)
    at parseHttpResponse (C:\Users\Administrator\Documents\sel-testing\node_modules\selenium-webdriver\lib\http.js:634:13)
    at Executor.execute (C:\Users\Administrator\Documents\sel-testing\node_modules\selenium-webdriver\lib\http.js:568:28)
    at processticksAndRejections (internal/process/task_queues.js:93:5)
(node:8956) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block,or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection,use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)

关于 Microsoft Edge 在 JS Selenium Grid 中的使用,我没有找到太多,所以我来这里寻求帮助。

任何帮助将不胜感激!

编辑

我按照 Yu Zhou 的建议尝试使用 Node Config,但现在出现不同的错误UnhandledPromiseRejectionWarning: SessionNotCreatedError: Unable to create new service: EdgeDriverService

我尝试使用一个不同的函数,它使用@microsoft/edge-selenium-tools 而不是 selenium-webdriver,如下所示:

const edge = require("@microsoft/edge-selenium-tools");

let options = new edge.Options().setEdgeChromium(true);
let driver = new edge.Driver().createSession(options);

运行时,这会创建一个 Edge 会话,但是我还没有找到将它发送到我的 Selenium Grid 的方法。有人可以帮助我这样做,或者就我的旧代码中的新错误提供指导吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。