所以我是一个初学者,我遇到了一个问题。所以这是我程序的一部分:
browser = webdriver.Chrome()
browser.get(('https://accounts.google.com/signin'
'/v2/sl/pwd?service=mail&passive=tru'
'e&rm=false&continue=https%3A%2F%2Fmai'
'l.google.com%2Fmail%2F&ss=1&scc=1<mp'
'l=default<mplcache=2&emr=1&osid=1&f'
'lowName=GlifWebSignIn&flowEntry=AddSe'
'ssion&cid=0&navigationDirection=forward'))
username = browser.find_element_by_id('identifierId')
username.send_keys(usernameStr)
nextButton = browser.find_element_by_id('identifierNext')
nextButton.click()
password = WebDriverWait(browser, 10).until(
EC.presence_of_element_located(By.CLASS_NAME('whsOnd zHQkBf')))
password.send_keys(passwordStr)
放置用户名的第一部分效果很好,单击下一步按钮的部分效果很好。
但是我不能让它用作密码。在用户名中,您具有ID标签,并且可以轻松地按ID查找元素,但密码没有此元素。这是密码HTML:
<input type="password" class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="current-password" spellcheck="false" tabindex="0" aria-label="Vnesite geslo" name="password" autocapitalize="off" autocorrect="off" dir="ltr" data-initial-dir="ltr" data-initial-value="">
我尝试将其称为类名或链接文本,但它不起作用。 感谢所有答案
答案 0 :(得分:0)
下面的链接适用于硒,但在Chrome上应该可以正常使用:find_element_by_tag_name(“ input”)或find_element_by_name(“ password”)都可以工作
https://selenium-python.readthedocs.io/locating-elements.html
答案 1 :(得分:0)
感谢B.Go的帮助,但这并不能真正帮助我张贴您的内容。
我决定以与第一部分相同的逻辑来重写代码
time.sleep(1)
password1 = browser.find_element_by_name("password")
password1.send_keys(passwordStr)
它现在神奇地起作用了。感谢您的帮助
答案 2 :(得分:0)
我遇到了同样的问题,这是我找到的解决方案。您必须让程序登录到电子邮件,因此您必须禁用安全设置。 这是使用SMTP库的更直接的方法。
import smtplib
server=smtplib.SMTP("smtp.gmail.com", 587) #when you use gmail
server.starttls()
server.user="your@email"
server.password="yourPassword"
server.login(server.user, server.password)
msg="Hello world"
server.sendmail("your@email", ["receiver@email", "also more"], msg)
server.quit()
MFG