如何解决如何使用硒将鼠标悬停在 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 如下所示:
网站 komoot 展开后是这样的:
解决方法
好的,这就是我如何让它工作。
登录后,我从链接中抓取了包装元素:
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 举报,一经查实,本站将立刻删除。