Создание программы на Python, которая регистрирует вас по электронной почте - PullRequest
0 голосов
/ 17 декабря 2018

Итак, я абсолютный новичок, и у меня возникла проблема.Так что это часть моей программы:

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&ltmp'
         'l=default&ltmplcache=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)

Первая часть, где он помещает мое имя пользователя, работает хорошо, также работает та часть, где он нажимает на следующую кнопку.

Но я не могу сделатьэто работает для пароля.В имени пользователя у вас есть идентификатор тега, и вы можете легко найти элемент по идентификатору, но пароль не имеет этого.Это пароль 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="">

Я пытался назвать его как имя класса или текст ссылки, но он просто не работает.Спасибо за все ответы

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Спасибо за помощь, B.Go, но это не очень помогло мне в том, что ты написал.

Я решил переписать код, используя ту же логику, что и в первой части

time.sleep(1)
password1 = browser.find_element_by_name("password")
password1.send_keys(passwordStr)

Это волшебно работает сейчас.Спасибо за помощь

0 голосов
/ 17 декабря 2018

У меня была такая же проблема, и вот решение, которое я нашел.Вы должны разрешить программе входить в вашу электронную почту, поэтому вы должны отключить настройки безопасности.Это более прямой способ использования SMTP lib.

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

0 голосов
/ 17 декабря 2018

Ссылка ниже предназначена для селена, но она должна работать с Chrome: find_element_by_tag_name ("input") или find_element_by_name ("password") должны оба работать
https://selenium -python.readthedocs.io/locating-elements.html

...