我正在尝试对以下网站进行web抓取,但登录时被卡住了。
这就是我一直在尝试的。有什么想法吗??
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('/Library/Chrome Drivers/chromedriver')
def site_login():
driver.get("https://partners.rappi.com/")
login = driver.find_elements_by_xpath("//span[contains(text(),'INGRESAR')]")
user = driver.find_elements_by_xpath("//input[@id='1-email']")
pass = driver.find_elements_by_xpath("//body/div[@id='auth0-lock-container- 1']/div[1]/div[2]/form[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[2]/span[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/input[1]")
login.click()
user.send_keys('xxx@mail.com')
pass.send_keys('Password123')
driver.find_element_by_id(“submit”).click()
site_login()
网页的加载时间是随机的。您需要介绍webdriverWait。
试试下面的代码:
代码:
driver = webdriver.Chrome("C:\Users\Inc\Desktop\Selenium+Python\chromedriver.exe")
driver.maximize_window()
wait = WebDriverWait(driver, 30)
driver.get("https://partners.rappi.com/")
wait.until(EC.element_to_be_clickable((By.XPATH, "//span[text()='INGRESAR']/.."))).click()
wait.until(EC.element_to_be_clickable((By.NAME, "email"))).send_keys("abc")
wait.until(EC.element_to_be_clickable((By.NAME, "password"))).send_keys("password")
wait.until(EC.element_to_be_clickable((By.NAME, "submit"))).click()