繁体   English   中英

python 与 selenium 自动登录

[英]python with selenium automating login

我是硒的新手在这里我想问一个问题代码(实际上不是我的)这是代码

aww = email.strip().split('|')
driver = webdriver.Chrome()
driver.get("https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent")
time.sleep(5)
loginform = driver.find_element_by_xpath("//button[@data-provider='google']")
loginform.click()
mailform = driver.find_element_by_id('identifierId')
mailform.send_keys(aww[0])
driver.find_element_by_xpath("//div[@id='identifierNext']").click()
time.sleep(3)
passform = driver.find_element_by_css_selector("input[type='password']")
passform.send_keys(aww[1])
driver.find_element_by_id('passwordNext').click()
time.sleep(3)
driver.get("https://myaccount.google.com/lesssecureapps?pli=1")
open('LIVE.txt', 'a+').write(f"CHECKED : {aww[0]}|{aww[1]}")
time.sleep(3)
lessoff = driver.find_element_by_xpath('//div[@class="hyMrOd "]/div/div/div//div[@class="N9Ni5"]').click()
driver.delete_all_cookies()
driver.close()

我正在使用这些代码自动打开 Gmail 中安全性较低的应用程序

错误会像这样弹出

引用回溯(最近一次调用最后一次):文件“C:\\Users\\ASUS\\Downloads\\ok\\less.py”,第 59 行,在lessoff = driver.find_element_by_xpath('//div[@class="hyMrOd "]/ div/div/div//div[@class="N9Ni5"]').click() 文件 "C:\\Users\\ASUS\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\selenium\\webdriver \\remote\\webdriver.py", line 394, in find_element_by_xpath return self.find_element(by=By.XPATH, value=xpath) File "C:\\Users\\ASUS\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site -packages\\selenium\\webdriver\\remote\\webdriver.py”,第 976 行,在 find_element 中 return self.execute(Command.FIND_ELEMENT, { File "C:\\Users\\ASUS\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ site-packages\\selenium\\webdriver\\remote\\webdriver.py”,第 321 行,在执行 self.error_handler.check_response(response) 文件“C:\\Users\\ASUS\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site”中-packages\\selenium\\webdriver\\remote\\errorhandler.py”,第 242 行,在 check_response 中引发 exception_class(message, screen, stacktrace) selenium.common.except ions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{"method":"xpath","selector":"//div[@class="hyMrOd"]/div/div/div//div[ @class="N9Ni5"]"}(会话信息:chrome=86.0.4240.183)

任何帮助都会有所帮助,对不起我之前的英语:)

您可以简单地定位此 xpath 和 .click 以切换安全性较低的应用程序。

 lessoff = driver.find_element_by_xpath("input[type='checkbox']").click()

看起来它找不到它正在寻找的元素,所以给一些时间来加载元素。 您可以使用Wait().until进行检查。

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait
wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, 'YOUR_XPATH')))

当您尝试单击一个元素时,请确保它在那里。 上面的代码将等到元素定位了10s如果元素未定位,则会抛出exception

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM