繁体   English   中英

将鼠标悬停在XPath,Selenium WebDriver,Chrome上吗?

[英]Hover using XPath, Selenium WebDriver, Chrome?

我对Python还是很陌生,仍在设法弄清楚一切。

在尝试抓取网页时,我遇到了一个问题:

该网站需要登录,并且在显示搜索结果页面后(有时在滚动和查看结果时)会弹出一个弹出窗口。 因此,我需要按Escape键,然后将鼠标悬停在(或单击它)“登录”下拉菜单上,然后单击:下拉菜单中的“登录”。

但是现在,从教育的角度来看,我想使用XPath将鼠标移到元素上。

我做了以下工作,但不起作用。

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

chrome_path = r"C:\Users\------\Desktop\chromedriver.exe"
driver = webdriver.Chrome(chrome_path)
driver.get("URL of the webnsite I am scraping")  #sorry had to remove the link :(
driver.maximize_window()


#code below this is not working
action = webdriver.ActionChains(driver)
action.move_to_element((By.XPATH, '//*[@id="user_sign_in"]'))



 #Tried the ones below and they didn't work either
 #driver.move_to_element(By.XPATH, '//*[@id="user_sign_in"]')
 #login_menu = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="user_sign_in"]')))

您忘记了通过perform()应用动作:

action.move_to_element((By.XPATH, '//*[@id="user_sign_in"]')).perform()

而且,您可以改为使用“ by id”定位器-使用XPath来解决这种简单的定位问题是一个过于复杂的过程:

elm = driver.find_element_by_id("user_sign_in")
action.move_to_element(elm).perform()

如果仍然无法解决问题,则可能是以下原因:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM