zoukankan      html  css  js  c++  java
  • python webdriver firefox 登录126邮箱,先添加联系人,然后进入首页发送邮件,带附件。

    代码:
    #encoding=utf-8
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import time

    #print u"启动浏览器..."
    print "start browser..."
    #创建Firefox浏览器实例
    driver=webdriver.Firefox(executable_path="c:\geckodriver")
    #最大化浏览器窗口
    driver.maximize_window()
    #print u"启动浏览器成功..."
    print "start browser done..."
    #print u"访问126邮箱登页。。。"
    print "access 126 mail login page..."
    driver.get("http://mail.126.com")
    #暂停5秒钟,一遍邮箱登录页面加载完成
    time.sleep(5)
    assert u"126网易免费邮--你的专业电子邮局" in driver.title

    print "access 126 mail login page done"

    wait=WebDriverWait(driver,30)

    wait.until(EC.frame_to_be_available_and_switch_to_it((By.ID,"x-URS-iframe")))

    username=driver.find_element_by_xpath("//input[@name='email']")

    username.send_keys("xiaxiaoxu1987")

    pwd=driver.find_element_by_xpath("//input[@name='password']")

    pwd.send_keys("gloryroad")

    pwd.send_keys(Keys.RETURN)

    print "user login..."

    time.sleep(5)
    time1=time.time()
    driver.switch_to.default_content()
    print "total time:",time.time()-time1
    assert u"网易邮箱" in driver.title
    print "login done"
    address_book_link = wait.until(lambda x: x.find_element_by_xpath("//div[text()='通讯录']"))
    address_book_link.click()

    add_contact_button = wait.until(lambda x: x.find_element_by_xpath("//span[text()='新建联系人']"))
    add_contact_button.click()

    contact_name = wait.until(lambda x: x.find_element_by_xpath("//a[@title='编辑详细姓名']/preceding-sibling::div/input"))
    contact_name.send_keys(u"徐凤钗")
    contact_email = wait.until(lambda x: x.find_element_by_xpath("//*[@id='iaddress_MAIL_wrap']//input"))
    contact_email.send_keys("593152023@qq.com")
    contact_is_star = wait.until(lambda x: x.find_element_by_xpath("//span[text()='设为星标联系人']/preceding-sibling::span/b"))
    contact_is_star.click()
    contact_mobile = wait.until(lambda x: x.find_element_by_xpath("//*[@id='iaddress_TEL_wrap']//dd//input"))
    contact_mobile.send_keys('18141134488')
    contact_other_info = wait.until(lambda x: x.find_element_by_xpath("//textarea"))
    contact_other_info.send_keys('my wife')
    contact_save_button = wait.until(lambda x: x.find_element_by_xpath("//span[.='确 定']"))
    contact_save_button.click()

    print u"进入首页。。。"
    time.sleep(3)
    mainPage=wait.until(EC.visibility_of_element_located((By.XPATH,"//div[.='首页']")))#也好用
    #mainPage=wait.until(lambda x: x.find_element(by='xpath', value = "//div[.='首页']"))#好用
    #mainPage=driver.find_element_by_xpath("//div[.='首页']")#好用
    mainPage.click()
    assert u"已发送" in driver.page_source
    print u"进入首页成功"
    print "write message..."
    writeMessage=wait.until(lambda x:x.find_element_by_xpath("//span[text()='写 信']"))
    writeMessage.click()
    #收件人
    receiver=wait.until(lambda x:x.find_element_by_xpath("//div[contains(@id,'_mail_emailinput')]/input"))
    receiver.send_keys("367224698@qq.com")
    #主题
    theme=wait.until(lambda x:x.find_element_by_xpath("//div[@aria-label='邮件主题输入框,请输入邮件主题']/input"))
    theme.send_keys(u"测试邮件")
    #添加附件
    attachment=wait.until(lambda x:x.find_element_by_xpath("//div[@title='点击添加附件']/input[@size='1' and @type='file']"))
    attachment.send_keys("d:\test.txt")
    #切入正文iframe
    driver.switch_to.frame(driver.find_element_by_xpath("//iframe[@tabindex=1]"))

    editBox=driver.find_element_by_xpath('/html/body')
    editBox.send_keys(u"发给夏晓旭的一封信")
    driver.switch_to.default_content()
    #print u"写信完成"
    print "write message done"
    driver.find_element_by_xpath("//header//span[text()='发送']").click()
    #print u"开始发送邮件"
    print "start to send email.."
    time.sleep(3)
    assert u"发送成功" in driver.page_source
    #print u"邮件发送成功"
    print "send emial done"
    driver.quit()

    结果:

    C:Python27python.exe D:/test/hybrid_version2/TestScripts/TestScript.py
    start browser...
    start browser done...
    access 126 mail login page...
    access 126 mail login page done
    user login...
    total time: 0.00800013542175
    login done
    进入首页。。。
    进入首页成功
    write message...
    write message done
    start to send email..
    send emial done

    Process finished with exit code 0



  • 相关阅读:
    左耳听风笔记摘要(01-06)程序员如何技术变现/如何拥有技术领导力
    写给哥哥和自己的一点职场小忠告
    从零开始的设计模式笔记01-为什么要学习设计模式?
    nginx部署ant-design-pro
    从零开始的vue学习笔记(八)
    从零开始ant-design-vue-pro开发笔记(一)
    从零开始的vue学习笔记(七)
    从零开始的vue学习笔记(六)
    极客时间-vue开发实战学习(ant-design vue作者)
    从零开始的vue学习笔记(五)
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/9343935.html
Copyright © 2011-2022 走看看