当前位置: 首页 > 知识库问答 >
问题:

无效的选择器:使用Selenium不允许复合类名错误

南门魁
2023-03-14

我正在尝试通过webWhatsapp从聊天中打印我的一条消息

我可以通过控制台选项卡中的Javascript来做到这一点,我这样做了

recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content

问题是,我试图在python上做同样的事情,但它对我不起作用…

以下是我的尝试:

from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason

我得到的错误是:消息:无效选择器:不允许复合类名

我对javascript有点陌生,很抱歉理解有误,谢谢你的帮助!:)

共有2个答案

计光赫
2023-03-14

按照这里和这里的建议使用css选择器

recived_msg = driver.find_element_by_css_selector('XELVh.selectable-text.invisible-space.copyable-text')
樊腾
2023-03-14

根据< code > selenium . web driver . common . by 实现的文档:

class selenium.webdriver.common.by.By
    Set of supported locator strategies.

    CLASS_NAME = 'class name'

所以,

> < li>

使用< code > find _ element _ by _ class _ name()将无法传递多个类名。传递多个类时,您将面临如下错误:

Message: invalid selector: Compound class names not permitted

此外,由于您想要返回聊天记录的数组,因此您需要使用< code>find_elements*而不是< code > find _ elements *

作为替代方案,您可以使用以下任何一种:定位器策略:

>

  • CSS_SELECTOR

    recived_msg = driver.find_elements_by_css_selector(".XELVh.selectable-text.invisible-space.copyable-text")
    

    < code>XPATH:

    recived_msg = driver.find_elements_by_xpath("//*[@class='XELVh selectable-text invisible-space copyable-text']")
    

  •  类似资料:
    • 问题内容: 我正在尝试通过webWhatsapp从聊天中打印我的消息之一。 我可以通过“控制台”选项卡中的Javascript完成此操作 问题是我试图在python上做同样的事情,但对我不起作用。 这是我尝试过的: 我收到的错误是:消息:无效的选择器:不允许使用复合类名 我对javascript有点陌生,所以很抱歉造成误会,并感谢您的帮助!:) 问题答案: 根据 实施文档: 所以, 使用您将无法传

    • 我尝试单击选择菜单并选择元素: 我的方式: 结果,我得到了这个异常: 组织.openqa.硒.无效选择器例外: 无效选择器: 不允许复合类名

    • 我正在测试Python Selenium,我有这样的代码: 在运行过程中,我有这个错误: 它一直运行到“videos = driver .....”这一行你能帮我固定我这边吗?

    • 当我搜索要选择的按钮时,我遇到了一个问题。当我尝试使用搜索它时 但是,它给了我一个错误 - 。我阅读了有关此问题的信息,似乎使用解决方案器是解决问题的方法,而不是使用。但是,我无法使 csS 选择器正常工作。这是包含我正在搜索的元素的html片段。 如何选择“pager__item pager__item - last”项目?

    • 我要找到下面的按钮。它是一个蚂蚁控制器。 它位于数据输入表单中,它的XPath变化取决于我们在表单顶部所做的选择。所以XPath不能使用。然后我试了CSS选择器,它也不支持。 最后,我使用类名作为位置策略,并使用移动到元素。 代码成功执行到以下行。 单击部分我们不起作用并抛出元素是不可见的。但元素是可见的

    • 我在尝试使用类名时遇到代码问题。我已尝试并运行时错误32显示为: 也许有人可以帮助编写下面的代码。我有chrome浏览器103.5060.114,但web驱动程序103.5060.56。我找不到其他司机下载。 超文本标记语言: VBA代码: 我的目标是将发送接收WhatsApp图标带到Excel表