0
我对python很陌生,仍然试图找出一切。悬停使用XPath,selenium webdriver,chrome?
虽然试图在我的手webscraping我有一个问题:
网站需要登录,并弹出,一旦显示为搜索结果页面显示出来,有时滚动时,看着结果。因此,我需要按下转义键,然后将鼠标悬停在(或者我可以点击它)“登录”下拉菜单上,然后点击下拉菜单中的“登录”。
但是现在,从教育的角度来看,我想使用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"]')))
谢谢,以上两者的工作。第二个是我现在使用的。现在要弄清楚当我点击登录时如何替换占位符文本。它在弹出窗口中,我可以找到xpath和id,但是我得到以下错误:'AttributeError:'list'object has no attribute'send_keys'' – Sid
@Sid您可能正在使用'find_elements_ *'(它返回元素列表)而不是'find_element_ *'(它返回一个元素)。 – alecxe
谢谢,我正在犯这个确切的错误。现在我改变它有一个全新的错误:'消息:未知错误:不能聚焦元素'我使用的代码'inputElement = driver.find_element_by_xpath('// * [@ id =“lfm”]/div [1] /输入您的手机号码))“)#driver.find_element_by_id(”mobile“) inputElement.send_keys('Phone Number' ) inputElement.submit()'。 – Sid