【问题标题】:Receiving error in selenium (javascript) when opening shadowRoot打开 shadowRoot 时在 selenium (javascript) 中接收错误
【发布时间】:2022-01-22 13:05:09
【问题描述】:

我正在为我正在开发的网络应用程序设置第一个自动化测试,并且遇到了我不理解的状态。

它是一个浏览器应用程序,所以我启动了一个非常简单的静态服务器:

    import http from 'http';

    let serve = serveStatic(path);
    server = http.createServer(function(req, res) {
        var done = finalhandler(req, res);
        serve(req, res, done);
    });

在测试期间,我收到一条错误消息HTTP method not allowed

let options = new firefox.Options();
options.headless();
let capabilities = webdriver.Capabilities.firefox().set('acceptInsecureCerts', true);
let driver = new webdriver.Builder()
    .forBrowser('firefox')
    .setFirefoxOptions(options)
    .withCapabilities(capabilities)
    .build();

await driver.get('http://127.0.0.1:3030/index.html');
let tab = await driver.findElement(state.By.css('ps-tabpanel'));
tab = await tab.getShadowRoot(); // HTTP method not allowed

凭直觉,我将其更改为HTTPS 连接

import http from 'https';

在这种情况下,我收到一个非常不同的错误

await driver.get('https://127.0.0.1:3030/index.html');
// Reached error page: about:neterror?e=nssFailure2&u=https%3A//127.0.0.1%3A3030/index.html&c=UTF-8&d=%20

所以我的主要问题是,我在使用 Javascript Selenium 访问 shadowRoot 时做错了什么?

供参考

  • 摩卡+硒+火狐
  • gitpod 环境
  • 有一个较早的测试,只是验证我可以连接到example.com,只是为了证明连接正常。

【问题讨论】:

  • 将协议从 HTTP 切换到 HTTPS 与修复 HTTP 方法错误无关。
  • 有什么相关的建议吗?
  • 你的服务器运行了吗?
  • 它找到了 html 元素,所以是的。 (也可以手动浏览,在页面上查找文字)

标签: javascript selenium shadow-dom


【解决方案1】:

为了解决这个错误,我切换到了 javascript 执行器。这引发了不同的错误消息(循环对象)。

这让我想到了一个不同的 stackoverflow 问题

https://stackoverflow.com/a/67223939/1961413

根据该答案,这是 GeckoDriver/Firefox 中的一个已知缺陷。

基于此,我切换到 ChromeDriver/Chrome,并且能够找到 ShadowRoot。

https://www.npmjs.com/package/chromedriver

let driver = new webdriver.Builder()
    .forBrowser('chrome')
    .build();
await driver.get('http://127.0.0.1:3030/index.html');
let tab = await driver.findElement(state.By.css('ps-tabpanel'));
tab = await tab.getShadowRoot();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 2018-05-14
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    相关资源
    最近更新 更多