我有下面的代码,单击一个元素以弹出一个屏幕并在其中复制文本
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属性中找到具有所有三个类(actio
我目前很难将值插入到框架内的字段中,我尝试过删除类名中的空格,但没有成功 class="ng-原始ng-有效ng-范围ng-空输入-sm表单-控制nc-原始ng-有效-必需ng-触摸" 我尝试过Chrome开发者工具,它适用于这个javascript代码 Chrome控制台开发器Javascript 在Selenium中,我尝试了以下两种方法,但均无效: 使用Javascript 错误消息: 使用
我试图获取具有特定类名的所有元素: 然而我得到的错误是: 我知道类名中不允许有空格,但是我该怎么办呢? 谢啦
我试图得到以下每个元素使用 inspect元素的输出如下。 但是它失败了,并抛出下面的错误。 另外,我如何遍历每个类?每个类都包含子部分,我想在进入下一个类之前进一步单独处理这些子部分。
我得到以下错误: "不允许使用复合类名" 尝试访问Web元素时,元素的类名之间有空格。Web元素的页面源如下所示。 我试图通过CSS路径找到元素,如下所示。但是这个元素是不可搜索的。 这是在链接中给出的解决方法,但仍然没有成功。你的帮助将不胜感激。