使用 Selenium Python 生成新密码

Using Selenium Python generate a new password

我忘记了密码,我用 Selenium 编写了这段代码来尝试恢复我的通行证,但我不知道如何继续。 新密码按钮不起作用。 有人能帮我吗?我尝试了不同的方式来继续,但我不知道。有什么办法进入吗?

我正在尝试使用该功能记住我的密码。像蛮力一样的东西。所以,我不知道如何循环生成新密码,使用函数,将其输入框“Contraseña:”直到正确

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
import time
import os
import datetime
from datetime import datetime
from playsound import playsound
import smtplib, ssl
from random import sample


def password_generator(longitud):
    abc_minusculas = "abcdefghijklmnopqrstuvwxyz"

    abc_mayusculas = abc_minusculas.upper()

    numeros = "0123456789"

    secuencia = abc_minusculas + abc_mayusculas + numeros

    password_union = sample(secuencia, longitud)

    password_result = "".join(password_union)

    return password_result


PATH = "C:\Program Files (x86)\Chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("http://siga.frba.utn.edu.ar/")
print(driver.title)

link = driver.find_element_by_id("page-try")
link.click()

time.sleep(1)

link = driver.find_element_by_xpath('//*[@id="menu-page-try"]/p[4]/a')
link.click()

time.sleep(1)

search = driver.find_element_by_name("form_email")
search.send_keys("35335")
search.send_keys(Keys.RETURN)

time.sleep(0.5)

1 您使用的定位器不是唯一的(有两个)。所以我用 xpath 定位器 //input[@name='form_email'].

替换了它

2 您到处都在使用 time.sleep。它可能比使用 Selenium 的 explicit/implicit 等待慢,而且它非常不稳定 因此,我在您的代码中添加了 wait = WebDriverWait(driver, 30) 并应用了显式等待。

3 另外,我注意到 page-try id 不是唯一的,所以我将其替换为 css 选择器。如果您使用的是 find_element...,而不是 find_elements... 那么您的定位器必须是唯一的。

解决方案

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import Select
import time
import os
import datetime
from datetime import datetime
import smtplib, ssl
from random import sample

PATH = '/snap/bin/chromium.chromedriver'
driver = webdriver.Chrome(executable_path=PATH)

driver.get("http://siga.frba.utn.edu.ar/")
print(driver.title)
wait = WebDriverWait(driver, 30)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#page-try"))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//a[contains(text(), 'Usuarios registrados')]"))).click()
search = wait.until(EC.element_to_be_clickable((By.XPATH, "//input[@name='form_email']")))
search.send_keys("35335")
search.send_keys(Keys.RETURN)

要单击 Solicitar nueva contraseña 按钮,请使用此 xpath://a[contains(text(), 'Solicitar nueva contraseña')]

尝试使用我提供的定位器作为您网站上其他元素的示例。以此为参考https://www.w3schools.com/xml/xpath_intro.asp