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

InvalidSelector错误:不允许使用“FindElementByClass”复合类名

田翰林
2023-03-14

我在尝试使用类名时遇到代码问题。我已尝试并运行时错误32显示为:

InvalidSelector Error: compund class names not permitted

也许有人可以帮助编写下面的代码。我有chrome浏览器103.5060.114,但web驱动程序103.5060.56。我找不到其他司机下载。

超文本标记语言:

<span dir="auto" title="Customer" class="ggj6brxn gfz4du6o r7fjleex g0rxnol2 lhj4utae le5p0ye3 l7jjieqr i0jNr">Customer</span>

VBA代码:

Sub iselementpresenttest()
    
Dim bot As New WebDriver
Dim ks As New Keys

'Init New Chrome instance & navigate to WebWhatsApp
bot.Start "chrome", "https://web.whatsapp.com/"
bot.Get "/"
bot.Window.Maximize
MsgBox "Please scan the QR code. After you are logged in, please confirm this message box by clicking 'ok'"
bot.Wait (3500)
        
'        If bot.FindElementByClass("_2qo4q _3NIfV") = 1 Then
'    Debug.Print "true"
'End If
        
        If bot.FindElementByClass("ggj6brxn gfz4du6o r7fjleex g0rxnol2 lhj4utae le5p0ye3 l7jjieqr i0jNr") = 1 Then
'                If bot.FindElementByXPath("//*[@id='pane-side']/div/div/div/div[11]/div/div/div[2]/div[2]/div[1]/span/div/span") = 1 Then
    Debug.Print "true"
End If
'        If bot.FindElementsByXPath("//*[@id='main']/div[3]/div/div[2]/div[3]/div[20]/div/div[1]/div[1]/div[2]/div/div/span").Count > 0 Then
    If bot.FindElementsByXPath("//*[@id='main']/div[3]/div/div[2]/div[3]/div[20]/div/div[1]/div[1]/div[2]/div/div/span").Count > 0 Then
        bot.TakeScreenshot.ToExcel.PasteSpecial (xlPasteAll)
        
            bot.Quit
            MsgBox "Yes"
        Else
            bot.Quit
            MsgBox "NO"
        End If
        
    End Sub

我的目标是将发送接收WhatsApp图标带到Excel表

共有1个答案

赫连越
2023-03-14

您需要在这里处理几件事:

  • 的类名

要识别元素,您可以使用以下定位器策略:

> < li>

使用FindElementByCss:

bot.FindElementByCss("span[title='Customer']")

使用FindElementByXPath:

bot.FindElementByXPath("//span[@title='Customer' and text()='Customer']")

 类似资料:
  • 我得到以下错误: "不允许使用复合类名" 尝试访问Web元素时,元素的类名之间有空格。Web元素的页面源如下所示。 我试图通过CSS路径找到元素,如下所示。但是这个元素是不可搜索的。 这是在链接中给出的解决方法,但仍然没有成功。你的帮助将不胜感激。

  • 我试图获取具有特定类名的所有元素: 然而我得到的错误是: 我知道类名中不允许有空格,但是我该怎么办呢? 谢啦

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

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

  • 我试图得到以下每个元素使用 inspect元素的输出如下。 但是它失败了,并抛出下面的错误。 另外,我如何遍历每个类?每个类都包含子部分,我想在进入下一个类之前进一步单独处理这些子部分。

  • 我正在尝试通过webWhatsapp从聊天中打印我的一条消息。 我可以通过控制台选项卡中的Javascript来做到这一点,我这样做了 问题是,我试图在python上做同样的事情,但它对我不起作用… 以下是我的尝试: 我得到的错误是:消息:无效选择器:不允许复合类名 我对javascript有点陌生,很抱歉理解有误,谢谢你的帮助!:)