zoukankan      html  css  js  c++  java
  • python webdriver 登陆163邮箱给QQ邮箱发送一个邮件,显示等待

    #encoding=utf-8

    import unittest

    import time

    from selenium import webdriver

    from selenium.webdriver import ActionChains

    from selenium.webdriver.common.by import By

    from selenium.webdriver.support.ui import WebDriverWait

    from selenium.webdriver.support import expected_conditions as EC

    from selenium.common.exceptions import TimeoutException, NoSuchElementException

    import traceback

    class Visit163ByFirefox(unittest.TestCase):

        def setUp(self):

            #启动IE浏览器

            self.driver=webdriver.Firefox(executable_path='d:\geckodriver')

            #self.driver = webdriver.Ie(executable_path = "e:\IEDriverServer")

           

        def test_HandleIFrame(self):

           

            url = "https://mail.163.com/"

            # 访问自动以测试网页

            self.driver.get(url)

            try:

                #显示等待

                wait=WebDriverWait(self.driver,15,0.2)

                #切换frame

                self.driver.switch_to.frame(self.driver.find_element_by_xpath("//*[@id='x-URS-iframe']"))

                #self.driver.switch_to.frame("x-URS-iframe")

                #显示等待获取用户名输入框元素

                name=wait.until(lambda x:x.find_element_by_xpath("//*[@class='j-inputtext dlemail']"))

                name.send_keys("xxxxx")

                #显示等待获取密码输入框元素

                passwd=wait.until(lambda x:x.find_element_by_xpath("//*[@class='j-inputtext dlpwd']"))

                passwd.send_keys("xxxxx")

                #登录

                login=wait.until(lambda x:x.find_element_by_id("dologin"))

                login.click()

                #切回到默认framae

                self.driver.switch_to.default_content()

                #获取写信按钮元素

                iwrite=wait.until(lambda x:x.find_element_by_xpath("//li[@id='_mail_component_74_74']/*[@class='oz0']"))

                iwrite.click()

                #获取收件人输入框元素

                receiver=wait.until(lambda x:x.find_element_by_xpath("//input[@class='nui-editableAddr-ipt' and @role='combobox']"))

                #receiver.click()

                receiver.send_keys("367224698@qq.com")

                #获取主题输入框元素

                theme=wait.until(lambda x:x.find_element_by_xpath("//input[@class='nui-ipt-input' and @type='text' and @maxlength='256']"))

                #theme.click()

                theme.send_keys(u"这是夏晓旭的第一个自动化发邮件脚本!")

                #切到写信内容部分的frame

                self.driver.switch_to.frame(self.driver.find_element_by_xpath("//*[@class='APP-editor-iframe']"))

                #获取写信区域的元素

                editBox = wait.until(lambda x:x.find_element_by_xpath("/html/body"))

                editBox.click()

                editBox.send_keys(u'这是夏晓旭的第一个自动化发邮件脚本!')

                #切回到默认frame

                self.driver.switch_to.default_content()

                #获取发送按钮元素

                send=wait.until(lambda x:x.find_element_by_xpath("//*[@class='jp0']//*[@role='button']//*[.='发送']"))

                send.click()

            except TimeoutException, e:

                # 捕获TimeoutException异常

                print traceback.print_exc()

            except NoSuchElementException, e:

                # 捕获NoSuchElementException异常

                print traceback.print_exc()

            except Exception, e:

                # 捕获其他异常

                print traceback.print_exc()

    if __name__ == '__main__':

        unittest.main()

  • 相关阅读:
    leetcode Reverse Words in a String
    leetcode[150] Evaluate Reverse Polish Notation
    leetcode Max Points on a Line
    leetcode Sort List
    leetcode Insertion Sort List
    vs 中一些快捷键
    leetcode LRU Cache
    leetcode[145] Binary Tree Postorder Traversal
    leetcode Binary Tree Preorder Traversal
    Leetcode Reorder List
  • 原文地址:https://www.cnblogs.com/xiaxiaoxu/p/9175488.html
Copyright © 2011-2022 走看看