class Hotmail:
def __init__(self, username, password):
self.browser = webdriver.Chrome()
self.username = username
self.password = password
self.emailsender = []
self.emailcontent = []
def signIn(self):
self.browser.get("url")
time.sleep(2)
self.browser.maximize_window()
username = self.browser.find_element_by_name("xxx").send_keys(self.username)
self.browser.find_element_by_xpath("xpath").click()
time.sleep(3)
password = self.browser.find_element_by_name("name").send_keys(self.password)
self.browser.find_element_by_xpath("xpath").click()
time.sleep(3)
self.browser.find_element_by_name("name").click()
self.browser.find_element_by_id("id").click()
def getEmails(self):
self.browser.get("anotherurl")
time.sleep(2)
sender = self.browser.find_elements_by_css_selector(".somecode")
content = self.browser.find_elements_by_css_selector(".someother code")
for i in sender:
self.emailsender.append(i.text)
for a in content:
self.emailcontent.append(a.text)
hotmail = Hotmail(username, password)
hotmail.signIn()
hotmail.getEmails()
print(hotmail.emailsender)
print(hotmail.emailcontent)
# it is all ok until here, problem is below
for a,b in zip(hotmail.emailsender, hotmail.emailcontent):
# print(a,b) this way you can see all the results
with open("output.txt", "w") as output:
output.write(f"{a}-----------------{b}")
# I get only first email as result, I want all of them
As you see above I have a code that extracts my email sender names and subjects and then saves them to "output.txt" on the same path as "sender--------subject" but I get only first email, the rest cannot be inserted, anyone knows how to do it??
Edit: If you want to append it to docx file:
import docx
document = Document()
for a,b in zip(hotmail.emailsender, hotmail.emailcontent):
document.add_paragraph(f"{a}---------------{b} \n")
document.save("yourdocfile.docx")