当前位置: 首页 > 面试题库 >

不允许使用selenium化合物类名称

秦博达
2023-03-14
问题内容

我有下面的代码,单击一个元素以弹出一个屏幕并在其中复制文本

el1 = driver.find_element_by_id("keyDev-A")
el1.click()
el2 = driver.find_element_by_class_name("content")
print(el2.text)

但是,当我尝试selenium单击该弹出窗口中的按钮时,

el3 = driver.find_element(By.CLASS_NAME, "action-btn cancel alert-display")
el3.click()

它产生一条错误消息: invalid selector: Compound class names not permitted

这是我selenium要单击的HTML 。该Close按钮。

<div class="nav">
    <span class="action-btn confirm prompt-display">Confirm</span>
    <span class="action-btn cancel prompt-display">Cancel</span>
    <span class="action-btn cancel alert-display">Close</span>
</div>

我应该怎么写el3才能单击关闭按钮?


问题答案:

Leon的评论提出了正确的信息,即不再支持复合类名称。相反,您可以尝试使用CSS选择器。就您而言,以下代码行应帮助您获取所需的元素:

el3 = driver.find_element_by_css_selector(".action-btn.cancel.alert-display")

它在class属性中找到具有所有三个类(action-btn,cancel和alert-display)的元素。请注意,类的顺序在这里无关紧要,任何类都可以出现在class属性的任何位置。只要元素具有所有三个类,就将其选中。如果您希望固定类的顺序,则可以使用以下xpath:

el3 = driver.find_element_by_xpath("//*[@class='action-btn cancel alert-display']")


 类似资料:
  • 我有下面的代码,点击一个元素弹出一个屏幕并复制其中的文本 我应该如何编写以便单击关闭按钮?

  • 问题内容: 我有下面的代码,单击一个元素以弹出一个屏幕并在其中复制文本 但是,当我尝试单击该弹出窗口中的按钮时, 它产生一条错误消息: 这是我要单击的HTML 。该按钮。 我应该怎么写才能单击关闭按钮? 问题答案: Leon的评论提出了正确的信息,即不再支持复合类名称。相反,您可以尝试使用CSS选择器。在您的情况下,以下代码行应帮助您获取所需的元素: 它在class属性中找到具有所有三个类(act

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

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

  • 我有一个下拉列表,它的检查如下所示: 我想检查所有元素,看看其中一个是否包含文本“其他”例如... 所以我用斯卡拉写,我这样做了: 显然这不是真的,你认为我应该怎么做?谢谢

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