zoukankan      html  css  js  c++  java
  • Selenium+python3实现登录网易邮箱发送邮件

    #coding=utf-8
    from selenium import webdriver
    import time
    
    #chromedriver.exe驱动存放地址
    path = 'D:/Language/Python/Python38/chromedriver.exe'
    driver = webdriver.Chrome(path)
    #隐式等待,所有元素最长等待10s
    driver.implicitly_wait(10)
    try:
        #窗口最大化
        driver.maximize_window()
        #网易邮箱地址
        driver.get('https://mail.163.com/')
        #点击账号密码登录
        driver.find_element_by_id('lbNormal').click()
        #进入框架,此处涉及selenium动态元素的获取
        driver.switch_to.frame(driver.find_element_by_xpath("//iframe[starts-with(@id, 'x-URS-iframe')]"))
        #输入邮箱
        driver.find_element_by_name('email').send_keys("邮箱名")
        #输入密码
        driver.find_element_by_name('password').send_keys("用户密码")
        #点击登录
        driver.find_element_by_id('dologin').click()
        #退出框架
        driver.switch_to.default_content()
        #点击写信
        driver.find_element_by_xpath('/html/body/div[1]/nav/div[1]/ul/li[2]/span[2]').click()
        #输入收件人邮箱
        driver.find_element_by_xpath('//input[@class="nui-editableAddr-ipt"]').send_keys("收件人邮箱")
        #输入主题
        driver.find_element_by_xpath("//*[contains(@id, 'subjectInput')]").send_keys("主题")
        #选择附件进行发送
        driver.find_element_by_xpath("//*[@class = 'by0 ej1']/input[1]").send_keys("附件在PC本地的地址")
        #进入APP-editor-iframe框架
        driver.switch_to.frame(driver.find_element_by_class_name("APP-editor-iframe"))
        #输入写信内容
        driver.find_element_by_xpath("/html/body").send_keys("内容")
        #退出框架
        driver.switch_to.default_content()
        #前面有附件上传,为避免上传文件页面缓存导致用例失败,等待两秒
        time.sleep(2)
        driver.find_element_by_xpath('//*[@class="jp0"]/div[1]').click()
    
    finally:
        a = "n"
        while a == "n":
            a = input("是否关闭浏览器驱动?y/n
    ")
            if a == "n":
                pass
            else:
                time.sleep(3)
                driver.quit()
    

    感谢:
    1、selenium定位动态id元素

  • 相关阅读:
    Thinkcmf:页面常用函数
    thinkcmf开发--关于控制器
    thinkcmf 常用操作
    Thinkcmf 二次开发
    Sublime Text 3 快捷键精华版
    php动态更改post_max_size, upload_max_filesize等值
    Jquery使用小技巧
    jQuery常用方法和函数
    三层架构
    JDBC
  • 原文地址:https://www.cnblogs.com/loveniko/p/12855454.html
Copyright © 2011-2022 走看看