¿Cómo puedo completar automáticamente el nombre de usuario y la contraseña en el siguiente enlace?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
chromedriver = 'C:\\chromedriver.exe'
browser = webdriver.Chrome(chromedriver)
browser.get('http://www.example.com')
Después de eso, realmente no lo sé:
username = Select(browser.find_element_by_name('Username'))
password = Select(browser.find_element_by_name('Password'))
username.select_by_visible_text("text")
password.select_by_visible_text("text")
Utilice el
WebElement.send_keys
método para simular la escritura de teclas.name
en el código (Username
,Password
) no coincide con el actualname
de los elementos (username
,password
).username = browser.find_element_by_name('username') username.send_keys('user1') password = browser.find_element_by_name('password') password.send_keys('secret') form = browser.find_element_by_id('loginForm') form.submit() # OR browser.find_element_by_id('submit').click()
fuente
user = driver.find_element_by_name("username") password = driver.find_element_by_name("password") user.clear() user.send_keys("your_user_name") password.clear() password.send_keys("your_password") driver.find_element_by_name("submit").click()
Nota:
user.clear()
para borrar el campo de entrada.fuente
En algunos casos, cuando el elemento no se puede interactuar,
sendKeys()
no funciona y es probable que encuentre un archivoElementNotInteractableException
.En tales casos, puede optar por ejecutar javascript que establece los valores y luego puede publicar.
Ejemplo:
url = 'https://www.your_url.com/' driver = Chrome(executable_path="./chromedriver") driver.get(url) username = 'your_username' password = 'your_password' #Setting the value of email input field driver.execute_script(f'var element = document.getElementById("email"); element.value = "{username}";') #Setting the value of password input field driver.execute_script(f'var element = document.getElementById("password"); element.value = "{password}";') #Submitting the form or click the login button also driver.execute_script(f'document.getElementsByClassName("login_form")[0].submit();') print(driver.page_source)
Referencia:
https://www.quora.com/How-do-I-resolve-the-ElementNotInteractableException-in-Selenium-WebDriver
fuente
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.webdriver.support.ui import WebDriverWait # If you want to open Chrome driver = webdriver.Chrome() # If you want to open Firefox driver = webdriver.Firefox() username = driver.find_element_by_id("username") password = driver.find_element_by_id("password") username.send_keys("YourUsername") password.send_keys("YourPassword") driver.find_element_by_id("submit_btn").click()
fuente
Soy nuevo en el selenio y probé todas las soluciones anteriores pero no funcionan. Finalmente, probé esto manualmente por
driver = webdriver.Firefox() import time driver.get(url) time.sleep(20) print (driver.page_source.encode("utf-8"))
Entonces podría obtener contenidos de la web.
fuente