WebDriverIO 6 – $ 工作正常,$ 在 iframe 中不工作

WebDriverIO 6 – $ works fine, $ doesn't work in iframe

我使用 WebDriverIO 并尝试像这样访问并单击 iframe 中的第二个 li 标签; HTML 图片:
。 不是iframe-id, li-id.

现在可以使用以下代码

describe('research test', () => {
    it ('click object in iframe test', () => {
        browser.url('http://localhost/test/html/index.html');
        browser.pause(2000);
        browser.switchToFrame(0);
        $$('[class="inside-list-menu"]')[1].click(); 
        browser.pause(5000);
    });
});

但我想更改以下部分的代码

 $$ ('[class = "inside-list-menu"]') [1] .click ();

 $ ('[class = "inside-list-menu"]') [1] .click ();

但是失败了。

我想知道

  1. 为什么 $ 不起作用?

  2. 其他方式 2nd li 标签可以点击以 $.

    开头

我正在使用 WebDriverIO 版本:6.14.5 // 浏览器:Chrome // OS:Windows 10

$$ 和 $ 之间存在显着差异。为了更好地理解这一点,请尝试从 here.

中理解 findElement 和 findElements

简而言之,$$ return 是一个元素数组,而 $ return 是第一个与 select 或

匹配的元素

基于 $$ 的 return 类型,您将 select 使用其索引的元素数组中的一个元素(在您的情况下为 [1] )。 $ 的 return 类型是一个元素,当你对它使用索引 select 时,这是根本错误的。