如何使用 Selenium Python 将鼠标从元素向上移动 9 个像素

Posted

技术标签:

【中文标题】如何使用 Selenium Python 将鼠标从元素向上移动 9 个像素【英文标题】:How to move the Mouse 9 pixels up from an element using Selenium Python 【发布时间】:2021-12-29 15:42:05 【问题描述】:

我有问题。我需要将鼠标移动到一个元素上,然后将鼠标从该元素向上提升 9 个像素。

classic = browser.find_element(By.CLASS_NAME,"surf-text")  
nadclassiknav = webdriver.ActionChains(browser).move_by_offset(0, -9)  
webdriver.ActionChains(browser).click()

【问题讨论】:

问题出在哪里? 【参考方案1】:

要将鼠标移动到一个元素,然后将鼠标从该元素向上移动 9 个像素,您需要诱导 WebDriverWait 为 visibility_of_element_located() 识别元素,移动鼠标,最后是 perform() 动作链,您可以使用以下Locator Strategy:

ActionChains(browser).move_to_element(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CLASS_NAME, "surf-text")))).move_by_offset(0, -9).perform()

注意:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains

【讨论】:

由于某种原因,控制台抛出此错误: Traceback (most recent call last) File "D:\PythonProjects\AvisoBot\bot.py", line 51, in ActionChains(browser) .move_to_element(WebDriverWait(browser, 20).until(EC.visibility_of_element_located((By.CLASS_NAME, "surf-text")))).move_by_offset(0, -9).perform() 文件 "C:\Users\brusn \AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\support\wait.py",第 89 行,直到引发 TimeoutException(消息、屏幕、堆栈跟踪) 该错误暗示未找到元素(By.CLASS_NAME, "surf-text")classic = browser.find_element(By.CLASS_NAME,"surf-text") 行是否定位到元素? 在网站上,您需要后退 9 个像素的元素如下所示:Просмотр видеоролика 我们对<span class="serf-text">Просмотр видеоролика</span>By.CLASS_NAME,"surf-text") 没有任何线索。我只有你执行任务的语法。定位元素应该是一个单独的问题。 以及如何在 selenium 中显示光标?或者至少知道他的位置?我需要这个,以便我可以配置机器人工作。

以上是关于如何使用 Selenium Python 将鼠标从元素向上移动 9 个像素的主要内容,如果未能解决你的问题,请参考以下文章

Selenium/Python - 悬停并单击元素

selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

Selenium3+python3--如何定位鼠标悬停才显示的元素

Python+Selenium笔记(十四)鼠标与键盘事件

Python+Selenium练习(二十四)- 鼠标右键

使用 Python 在 Selenium 中模拟鼠标移动