0

我有一个任务是在表中捕获所有苹果股票的历史值。链接是这个-https://finance.yahoo.com/quote/AAPL/history/

在检查表部分,它被这个覆盖

 class="Pb(10px) Ovx(a) W(100%)" data-reactid="32"

如您所见,上面的类名包含很多空格,因此我需要提出类似 .Pb(10px).Ovx(a).W(100%) tr

当我直接在 chrome 页面中使用此字符串时效果很好 [inspect elements->ctrl+F->copy above string) 因此在我的代码中像这样使用(灵感来自官方文档 https://webdriver.io/docs/api/ element/getText.html 从表中获取数据) -

    const rows=$$('.Pb\(10px\).Ovx\(a\).W\(100\%\) tr');
    const C1 =rows[1].$$('td');
    const D1=C1[3].getText();

不幸的是,我在通过 webdriverio 运行 js 代码时遇到以下错误

[0-0] 2020-12-24T20:06:47.791Z INFO webdriver: COMMAND findElements("css selector", ".Pb(10px).Ovx(a).W(100%) tr")
[0-0] 2020-12-24T20:06:47.792Z INFO webdriver: [POST] 
http://localhost:9515/session/a6e01e59fd6304b8d56fb3360ac78ab3/elements
2020-12-24T20:06:47.792Z INFO webdriver: DATA { using: 'css selector', value: '.Pb(10px).Ovx(a).W(100%) tr' }
[0-0] 2020-12-24T20:06:47.824Z WARN webdriver: Request failed with status 400 due to invalid selector: An invalid or illegal selector was specified
(Session info: chrome=87.0.4280.88)

尝试了很多选择,需要来自努力的建议:)

4

1 回答 1

1

选择器看起来像这样,适用于 wdio 和 chrome '[class*="Pb(10px)"][class*="Ovx(a)"][class*="W(100%)"]'data-test如果您几乎在任何地方都有属性,我不确定为什么您需要依赖类,'[data-test="historical-prices"]'但是这当然取决于您。

于 2020-12-25T12:54:07.017 回答