2017-01-31 5 views
0
import os 
import sys 
import selenium 
import time 
from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

browser = webdriver.Firefox() 
type(browser) 
Get_webpage=browser.get('https://accounts.google.com/ServiceLogin?sacu=1&scc=1&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&hl=en&service=mail#identifier') 

user_name = browser.find_element_by_id('Email') 
user_name.send_keys("username")#Enter your username 

time.sleep(2) 

next = browser.find_element_by_id('next') 
next.submit() 

time.sleep(5) 

password = browser.find_element_by_id('Passwd') 
password.send_keys("password")#enter your password 
password.submit() 

time.sleep(5) 
compose = browser.find_element_by_xpath("//div[@role='button']") 
compose.click() 

time.sleep(5) 
Attach_file = browser.find_element_by_xpath("//div[@role='button']") 

Я смог войти в gmail.I смог написать письмо, но я не могу подключить файл. Может кто-нибудь предложить мне способ прикреплять файл? Возможно ли это с селеном или мне нужно использовать модуль pyautoit?Можно ли подключить файл к gmail с помощью модуля pyautoit?

+0

В то время как я уважаю попытку использовать селен, почему вы не используете google api? https://developers.google.com/gmail/api/ – RobertB

+0

Я не знал, что мы можем использовать google api. Не могли бы вы объяснить мне, как я могу использовать файлы при отправке писем? Пожалуйста, не нужно автоматизировать его с помощью python, а не с помощью java. – Sai

+0

Ссылка, которую я разместил, содержит руководства, образцы и множество документации. В руководствах даже есть примеры python. Существует также руководство по загрузке вложений. Поэтому я думаю, вам просто нужно читать и учиться. – RobertB

ответ

1

Вы идете по очень сложной дороге, пытаясь избежать «правильного» способа делать вещи. Бросьте текущий подход с селеном и погрузитесь в холодную воду, это не так сложно.

Это рабочий пример отправки электронной почты с приложением, как только вы поняли MIME, вы можете делать все, что хотите, почтой.

# -*- coding: iso-8859-1 -*- 
from email.mime.text import MIMEText 
from email.mime.application import MIMEApplication 
from email.mime.multipart import MIMEMultipart 
from smtplib import SMTP 

msg = MIMEMultipart() 
msg['Subject'] = 'Email From Python' 
msg['From'] = '[email protected]' 
msg['To'] = '[email protected]' 

# That is what u see if dont have an email reader: 
msg.preamble = 'Multipart massage.\n' 

# This is the textual part: 
part = MIMEText("Hello im sending an email with a PDF from a python program") 
msg.attach(part) 

# This is the binary part(The Attachment): 
part = MIMEApplication(open("networkanalyze.pdf","rb").read()) 
part.add_header('Content-Disposition', 'attachment', filename="file.pdf") 
msg.attach(part) 

# Create an instance in SMTP server 
smtp = SMTP("smtp.gmail.com:587") 
smtp.ehlo() 
smtp.starttls() 
smtp.login("[email protected]", "mySuperSecretPassword") 
smtp.close() 

# Send the email 
smtp.sendmail(msg['From'], msg['To'], msg.as_string()) 
+0

Спасибо, что ответили. Где я должен упомянуть путь к файлу, который мне нужно прикрепить? – Sai

+0

, если файл находится в том же каталоге, что и ваш .py-файл, вам не нужно указывать путь. иначе вы отредактируете эту строку: 'part = MIMEApplication (open (" \ path \ to \ file \ networkanalyze.pdf "," rb "). read())' –

+0

Если этот ответ вам помог, пожалуйста, принимая в качестве ответа. –