如何使用 Selenium 和 VBA 识别包含特殊字符的元素类名

Posted

技术标签:

【中文标题】如何使用 Selenium 和 VBA 识别包含特殊字符的元素类名【英文标题】:How to identify elements classname containing special characters using Selenium and VBA 【发布时间】:2021-05-18 16:18:31 【问题描述】:

我正在尝试更多地了解 Selenium 如何与 VBA 一起工作,并且我正在尝试对当今电子商务的趋势行为做一些事情。

在这种情况下,我不知道 FindelementByclass 内部有 _- 等特殊字符时如何工作,因为它总是给我空结果,我需要识别它,因为我想通过每个类都称为它。

<span class="minificha__sku ng-binding">Cód TG: AS0-322</span>

【问题讨论】:

【参考方案1】:

要识别元素,您可以使用以下任一Locator Strategies:

使用 FindElementByClassName 我:

bot.FindElementByClassName("minificha__sku")

使用FindElementByClassName II:

bot.FindElementByClassName("ng-binding")

使用FindElementByCss

bot.FindElementByCss("span.minificha__sku.ng-binding")

使用FindElementByXPath

bot.FindElementByXPath("//span[@class='minificha__sku ng-binding']")

【讨论】:

【参考方案2】:

类中的空格表示它有两个类,

class="minificha__sku ng-binding"

意味着它有 "minificha__sku" 和 "ng-binding" ,所以使用 xpath 或 css 而不是 byclass 或使用两个类中的一个而不是两个

css:

span[class="minificha__sku ng-binding"]

xpath

//span[@class="minificha__sku ng-binding"]

【讨论】:

我明白,但它不适用于我需要做的事情,或者我猜这就是导致我的脚本出现问题的原因,你能给我一个使用 css 的例子吗? 您的 css 模式是错误的,因为复合类需要用“.”连接。即 minificha__sku.ng-binding 除非您打算在其中插入后代组合器并查找子节点? 我不明白

以上是关于如何使用 Selenium 和 VBA 识别包含特殊字符的元素类名的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Selenium VBA将焦点切换到新窗口?

Python Selenium - 根据样式属性单击css元素或包含子元素的文本?推特关注

如何在 Python Scraping 中使用 beautifulsoup 和 selenium 识别类名或 id

python selenium-webdriver 登录验证码的处理

如何使用 VBA 识别 MS Outlook 中的日历条目?

如何识别 ReCaptcha V2 的 32 位数据站点密钥以使用 Selenium 和 Python 请求以编程方式获取有效响应?