Python 使用Selenium将鼠标悬停在元素上

Python 使用Selenium将鼠标悬停在元素上,python,html,selenium,web-scraping,Python,Html,Selenium,Web Scraping,我正在尝试将一些东西自动化。问题是,当我需要按下语言交换按钮时,我失败了 我将交换按钮定义为swap\u button=wait.until(位于((By.XPATH,'/*[@id=“ow23”]/div/span/button')) 当我尝试使用swap_按钮单击它时。单击()在手动将鼠标悬停在按钮上方之前,似乎什么都没有发生 我也尝试过使用ActionChains(driver)。将\u移动到\u元素(swap\u按钮)。执行()来模拟悬停,即使使用时间。sleep(5)似乎没有任何区别

我正在尝试将一些东西自动化。问题是,当我需要按下语言交换按钮时,我失败了

我将交换按钮定义为
swap\u button=wait.until(位于((By.XPATH,'/*[@id=“ow23”]/div/span/button'))

当我尝试使用
swap_按钮单击它时。单击()
在手动将鼠标悬停在按钮上方之前,似乎什么都没有发生

我也尝试过使用
ActionChains(driver)。将\u移动到\u元素(swap\u按钮)。执行()
来模拟悬停,即使使用
时间。sleep(5)
似乎没有任何区别

作为
swap\u按钮的替代方法。单击()
我尝试使用
swap\u按钮。发送密钥(Key.ENTER)
,但问题仍然存在

我不知道我是否只是不能让它工作,或者谷歌是否做了一些事情来阻止网络自动化之类的事情发生


感谢您的任何帮助。

我不确定,但我认为应该是:

wait(your_driver_name, some_time).until(EC.presence_of_element_located((By.XPATH, '//*[@id="ow23"]/div/span/button')))

尝试等待按钮可单击并修复其定位器:

from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

wait = WebDriverWait(driver, timeout=30)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, ".aCQag .VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.q7sDqe.lRTpdf.U2dVxe")))
elem = driver.find_element_by_css_selector(".aCQag .VfPpkd-Bz112c-LgbsSe.yHy1rc.eT1oJ.q7sDqe.lRTpdf.U2dVxe")
elem.click()

不是这样。在我已经编写的给定代码上方
wait=WebDriverWait(driver,5)
非常感谢,它现在似乎可以工作了。但是,如果我使用XPATH或CSS_选择器,为什么会有区别呢?这只是品味的问题。我也可以找到xpath。但在这种情况下,时间太长了。对于css选择器,您只需在类名前加一个点。@Dom
XPATH
引擎在每个浏览器中都是不同的,因此它使它们不可靠。此外,性能方面的
CSS\u选择器
XPATH
有优势。好吧,我理解。最后一个问题,除了手动复制css_选择器或为其获取扩展之外,还有其他方法复制css_选择器吗?我认为应该有一些浏览器扩展,但我不使用任何扩展。