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中按类名选择下拉值[重复]
如何使用 selenium python 查找包含特定字符串的所有按钮?