Estoy trabajando con www.freightquote.com y en algún momento necesito iniciar sesión; de lo contrario, no me permite obtener tarifas de flete para más de 45 pares.
Me gustaría ingresar la información de inicio de sesión para este sitio web, pero por alguna razón no funciona. No pude entender el problema.
Puede usar directamente este sitio web: https://account.chrobinson.com/
Tengo problema para ingresar la información que me piden. Aquí esta lo que hice:
from selenium import webdriver from time import sleep import pandas as pd 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.keys import Keys from selenium.webdriver.support.ui import Select from selenium.webdriver.chrome.service import Service PATH = r'C:\Users\b\Desktop\Webscraping\chromedriver.exe' s= Service(PATH ) driver = webdriver.Chrome(service=s) link = "https://www.freightquote.com/book/#/free-quote/pickup" driver.get(link) sleep(2) driver.maximize_window() sleep(2) driver.find_elements(by=By.XPATH, value = '//button[@type="button"]')[0].click() sleep(3) #Username: driver.find_element(by=By.XPATH, value='//input[@type="email"]').send_keys('USERNAME') driver.find_elements(by=By.XPATH, value = '//input[@class="button button-primary" and @type="submit"]')[0].click() #password driver.find_element(by=By.XPATH, value='//input[@type="password"]').send_keys('PASSWORD') driver.find_elements(by=By.XPATH, value = '//input[@class="button button-primary" and @type="submit"]')[0].click() sleep(2)su código y su técnica tienen demasiados problemas, debe aprender a codificar en selenio por completo y luego comenzar a escribir código. Modifiqué su código hasta el punto de ingresar el correo electrónico, complete el código en consecuencia.
driver = webdriver.Chrome() link = "https://www.freightquote.com/book/#/free-quote/pickup" driver.get(link) driver.maximize_window() WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.XPATH, '(//button[@type="button"])[1]'))).click() WebDriverWait(driver, 30).until( EC.presence_of_element_located((By.XPATH, '//input[@type="email"]'))).send_keys('USERNAME')Además, no necesita agregar la ruta del controlador de cromo en su código. si usas Windows o Linux debes agregarlo a tu virtualenv, en la carpeta /bin y si usas desde mac debes agregarlo a esta ruta /usr/local/bin
Para ingresar la información de inicio de sesión para el sitio web , debe inducir WebDriverWait para element_to_be_clickable() y puede usar las siguientes estrategias de localización :
Usando CSS_SELECTOR :
driver.get("https://account.chrobinson.com/") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']"))).send_keys("Ribella") driver.find_element(By.CSS_SELECTOR, "input[name='password']").send_keys("Ribella") driver.find_element(By.CSS_SELECTOR, "input[value='Sign In']").click()Nota : debe agregar las siguientes importaciones:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as ECInstantánea del navegador:
