Ich machte ein einfaches Programm, mit dem ich das Login-Formular ausfüllen und E-Mail an jemanden senden kann .. und während ich drauf bin, es geht einfach nicht mehr und gestoppt beim Öffnen eines Links.Ich bin wirklich mit Python Selen Modul stecken
# 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()
Der Code funktionierte gut, bis es pwElem
getroffen, die mich fragen, warum macht signinElem
und idElem
aber nicht pwElem
gearbeitet ??
Ich stolperte zufällig mit ähnlicher Situation, wo ich einige Verbindungen durchlassen kann, aber andere nicht. Was ist falsch an diesem Code?
Und ich habe folgende Fehler
Traceback (jüngste Aufforderung zuletzt): Datei "C: /Users/Cyber/Downloads/WriteMail.py", Zeile 22, in pwElem = browser.find_element_by_id ('Passwd') Datei "C: \ Benutzer \ Cyber \ Downloads \ lib \ Site-Pakete \ selen \ webdriver \ remote \ webdriver.py", Zeile 269, in find_element_by_id return self.find_element (von = By.ID , Wert = id_) Datei "C: \ Benutzer \ Cyber \ Downloads \ lib \ Site-Pakete \ selen \ webdriver \ remote \ webdriver.py", Zeile 752, in find_element 'Wert': Wert}) ['Wert '] Datei "C: \ Benutzer \ Cyber \ Download s \ lib \ Site-Pakete \ selen \ webdriver \ remote \ webdriver.py ", Zeile 236, in Ausführung self.error_handler.check_response (Antwort) Datei" C: \ Benutzer \ Cyber \ Downloads \ lib \ Site-Pakete \ selen \ webdriver \ remote \ errorhandler.py ", Zeile 192, in check_response raise ausnahmeklasse (message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Nachricht: Kann nicht locate element: {" method ":" id "," selector ":" Passwd "} Stacktrace: um (file: /// C: /Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/[email protected]/components/driver-component. js: 10770) um (file: /// C: /Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/[email protected]/components/driver-component.js: 10779) um (file: /// C:/Benutzer/Cyber / AppData/Lokal/Temp /tmpczr__hhf/extensions/[email protected]/components/command-processor.js:12661) um (file: /// C:/Benutzer/Cyber / AppData/Lokale/Temp/tmpczr__hhf/extensions/fxdriver @ googlecode. com/components/command-processor.js: 12666) um (file: /// C: /Users/Cyber/AppData/Local/Temp/tmpczr__hhf/extensions/[email protected]/components/command-processor.js 12608)
Show 'HTML' für gleiche \ – Andersson
+ zu finden, wenn sie versuchen einige Links zu klicken, wird browser.find_by_id und browser.find_by_class_name einen Unterschied? Sind das einige Werke und andere nicht? –
@Andersson Ich habe versucht, HTML-Code mit bs4 zu analysieren, aber ich habe [] ... soup.select ('# Passwd'), soup.select ('password-show'), soup.select ('input [Passwd] '), alle von ihnen. –