微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用硒将鼠标悬停在 komoot 上并展开下拉菜单?

如何解决如何使用硒将鼠标悬停在 komoot 上并展开下拉菜单?

我的目标是在下拉菜单获取一个元素,需要单击该元素才能使用 python selenium 出现。此外,似乎在点击之前,悬停是必要的。 我试着像这样点击下拉菜单

element = wait().until(EC.presence_of_element_located((By.CLASS_NAME,"c-topmenu c-topmenu--create c-topmenu--userbar tw-inline-flex")))
element.click()
def wait():
    return webdriverwait(driver,30)

并尝试使用悬停:

Hover = ActionChains(driver).move_to_element(element)
Hover.click().build().perform()

仍然出现 TimeoutException 并且无法找到解决方案。

点击下拉菜单前,网站 komoot 如下所示:

before expanding dropdown

网站 komoot 展开后是这样的:

after expanding dropdown

解决方法

好的,这就是我如何让它工作。

登录后,我从链接中抓取了包装元素:

more_menu_wrapper = driver.find_element_by_css_selector("div[data-test-id='more_menu']")

之后我可以点击所需的元素:

more_menu_wrapper.find_element_by_tag_name("a").click()
,

您使用了错误的定位器。
如果有多个类名,您应该使用 css_selector 或 XPath,而不是类名。
另外,这里你有一个唯一的 data-test-id 属性,你应该使用它。
此外,您应该等待元素可见性或可点击性,而不仅仅是元素存在。
所以你的代码可能是:

element = wait().until(EC.visibility_of_element_located((By.CSS_SELECTOR,"div[data-test-id='more_menu']")))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。