Selenium/Python - 悬停并单击元素
Posted
技术标签:
【中文标题】Selenium/Python - 悬停并单击元素【英文标题】:Selenium/Python - hover and click on element 【发布时间】:2013-11-24 21:09:29 【问题描述】:我在 Python 上的 Selenium 脚本遇到了问题。在我与之交互的 javascript Web 应用程序中,我需要单击的元素不存在,直到我将鼠标悬停在它上面。我已经查看并找到了有关如何悬停的各种答案,但是该序列需要包括在悬停事件期间单击新元素。这是我目前正在使用的代码。当出现悬停时,元素从 add 重命名为 add1,一旦 add1 存在;我应该可以单击/send.keys 来执行所述元素。
...
driver = webdriver.Firefox()
from selenium.webdriver.common.action_chains import ActionChains
...
add = driver.find_element_by_css_selector('input.add')
Hover = ActionChains(driver).move_to_element(add)
Hover.perform()
SearchButton = driver.find_element_by_css_selector('input.add1')
SearchButton.click()
我是 Python 和一般编程的新手,但我不知道如何正确排序。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:以下对我有用,请试一试:
add = driver.find_element_by_css_selector('input.add')
SearchButton = driver.find_element_by_css_selector('input.add1')
Hover = ActionChains(driver).move_to_element(add).move_to_element(SearchButton)
Hover.click().build().perform()
我不确定上面的 Python 代码。但是你可以使用上面的逻辑。
【讨论】:
注意这些错误:'ActionChains' 对象没有属性'build' 我在我的代码中删除了您的解决方案的构建。但是感谢其余的答案,这对我非常有用。【参考方案2】:这里是另一个有用的链接 How to mouseover in python Webdriver
@TDHM 您应该在下面提到这一行以使其正常工作
from selenium.webdriver.common.action_chains import ActionChains
谢谢
【讨论】:
以上是关于Selenium/Python - 悬停并单击元素的主要内容,如果未能解决你的问题,请参考以下文章
selenium.common.exceptions.ElementNotInteractableException:消息:使用 Selenium Python 单击元素时元素不可交互
Selenium Python - 单击图像链接出错:消息:元素不可见