gpt4 book ai didi

python - 我真的被 Python selenium 模块困住了

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:21 24 4
gpt4 key购买 nike

我正在制作一个简单的程序,它使我能够填写登录表单并向某人发送电子邮件..当我使用它时,它只是不再继续并停止在打开某些链接上。

# Practice Program!

import requests, os, bs4, webbrowser
from selenium import webdriver

url = 'http://google.com'

res = requests.get(url)
res.raise_for_status()

browser = webdriver.Firefox()

browser.get(url)

signinElem = browser.find_element_by_id('gb_70')
signinElem.click()

idElem = browser.find_element_by_id('Email')
idElem.send_keys('not_my_real_id')
idElem.submit()

pwElem = browser.find_element_by_id('Passwd')
pwElem.send_keys('not_my_pw')
pwElem.submit()

mailElem = browser.find_element_by_class_name('gb_P')
mailElem.click()

composeElem = browser.find_element_by_class_name('class="T-I J-J5-Ji T-I-KE L3')
composeElem.click()

该代码运行良好,直到达到 pwElem ,这让我想知道为什么signinElemidElem有效但没有pwElem ??

我碰巧遇到了类似的情况,我可以通过一些链接,但其他链接则不能。这段代码有什么问题?

我收到以下错误

Traceback (most recent call last): File "C:/Users/Cyber/Downloads/WriteMail.py", line 22, in pwElem = browser.find_element_by_id('Passwd') File "C:\Users\Cyber\Downloads\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 269, in find_element_by_id return self.find_element(by=By.ID, value=id_) File "C:\Users\Cyber\Downloads\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 752, in find_element 'value': value})['value'] File "C:\Users\Cyber\Downloads\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 236, in execute self.error_handler.check_response(response) File "C:\Users\Cyber\Downloads\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 192, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"id","selector":"Passwd"} Stacktrace: at (file:///C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/driver-component.js:10770) at (file:///C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/driver-component.js:10779) at (file:///C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12661) at (file:///C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12666) at (file:///C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)

最佳答案

当您提交电子邮件时,

Paasword字段变得可见,因此您需要实现WebDriverWait以等待password > 字段可见如下:-

from selenium.webdriver.support import expected_conditions as EC

-------------

wait = WebDriverWait(browser, 10)

idElem = wait.until(EC.visibility_of_element_located((By.ID, "Email")))
idElem.send_keys('not_my_real_id')
idElem.submit()


pwElem = wait.until(EC.visibility_of_element_located((By.ID, "Passwd")))
pwElem.send_keys('not_my_pw')
pwElem.submit()

希望对你有帮助..:)

关于python - 我真的被 Python selenium 模块困住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38216394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com