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

Selenium Python - 单击图像链接出错:消息:元素不可见

Selenium(Python):单击按钮后,等待所有新元素(可以具有不同的属性)被加载[重复]

如何在单击时选择悬停元素而不是悬停元素?

Selenium 等待 HTML 元素更改