Selenium在python中按类名查找悬停按钮元素

Posted

技术标签:

【中文标题】Selenium在python中按类名查找悬停按钮元素【英文标题】:Selenium Finding hover button element by class name in python 【发布时间】:2021-08-12 00:41:38 【问题描述】:

周日快乐,

试图点击website 上的过滤器按钮(称为优惠)。它是一个没有关联链接的悬停按钮,因此无法通过链接文本找到元素。

When clicking Offer button, the wanted button goes from class="item-list-header-filter-icon item-list-wanted-filter hover-state" to class="item-list-header-filter-icon item-list-wanted-filter hover-state inactive"

我试过了:

driver.find_element_by_class_name(item-list-header-filter-icon item-list-wanted-filter hover-state)

因为它是动态的,所以我让 webdriver 等待:

        try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.CLASS_NAME, "item-list-header-filter-icon item-list-wanted-filter hover-state inactive"))
        )
        element.click()

非常感谢任何想法! 祝你有美好的一天

【问题讨论】:

【参考方案1】:

您需要将鼠标悬停在该元素上。 可以这样做:

from selenium.webdriver.common.action_chains import ActionChains

offer = driver.find_element_by_css_selector('.item-list-header-filter-icon.item-list-offer-filter')
hover = ActionChains(driver).move_to_element(offer)
hover.perform()

如果您只要求找到该元素,您可以简单地使用

offer = driver.find_element_by_css_selector('.item-list-header-filter-icon.item-list-offer-filter')

【讨论】:

以上是关于Selenium在python中按类名查找悬停按钮元素的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Java在Selenium WebDriver中按类名选择下拉值[重复]

在 chrome 中按下鼠标按钮时无法应用悬停样式

如何使用 selenium python 查找包含特定字符串的所有按钮?

Selenium/Python - 悬停并单击元素

如何在 selenium python 中按 Enter 键?

Selenium 按类名查找元素