我正在做一個簡單的程序,使我能夠填寫登錄表單併發送電子郵件給某人..而當我在上面時,它只是不會更多和在打開某個鏈接時停下來。我真的與Python硒模塊卡住
# 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
,這使我想知道爲什麼signinElem
和idElem
工作,但不pwElem
?
我碰巧遇到了類似的情況,我可以通過一些鏈接,但其他人不通過。這段代碼有什麼問題?
,我得到了以下錯誤
回溯(最近最後一次調用):文件 「C:/Users/Cyber/Downloads/WriteMail.py」 22行,在 pwElem = browser.find_element_by_id ('Passwd')文件「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_)文件「C:\ Users \ Cyber \ Downloads \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py」, line 752,in find_element 'value':value})['value ']文件「C:\ Users \ Cyber \ Download」 s \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py「, 236行,執行 self.error_handler.check_response(response)文件」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:消息:Unable to locate element:{」method「:」 (「file:/// C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/[email protected]/components/driver-component」)。 js:10770) at(file:/// C:/Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/[email protected]/components/driver-component.js:10779) at(file: /// C:/用戶/網絡/應用程序數據/本地/溫度/tmpczr__hhf/extensions/[email protected]/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/[email protected]/components/command-processor.js :12608)當您提交
WebDriverWait
等到password
現場看到如下
顯示'HTML'爲同一\ – Andersson
+試圖點擊一些鏈接時,沒有browser.find_by_id和browser.find_by_class_name有什麼區別?這就是爲什麼一些作品和其他人不是? –
@Andersson我嘗試使用bs4解析html代碼,但是我得到了[] ... soup.select('#Passwd'),soup.select('password-shown'),soup.select('input [Passwd] '), 他們全部。 –