【问题标题】:How to move the Mouse 9 pixels up from an element using Selenium Python如何使用 Selenium Python 将鼠标从元素向上移动 9 个像素
【发布时间】: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()

【问题讨论】:

  • 问题出在哪里?

标签: python selenium action webdriverwait mousemove


【解决方案1】:

要将鼠标移动到一个元素,然后将鼠标从该元素向上移动 9 个像素,您需要诱导 WebDriverWaitvisibility_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 中显示光标?或者至少知道他的位置?我需要这个,以便我可以配置机器人工作。
猜你喜欢
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-02
相关资源
最近更新 更多