zoukankan      html  css  js  c++  java
  • Selenium Webdriver API(9)

    Selenium Webdriver API(9)

    44、操作JavaScript的comfirm弹窗

    #encoding=utf-8
    import time
    import unittest
    from selenium import webdriver
    
    class visitLocalConfirmByIe(unittest.TestCase):
        def setUp(self):
            #启动浏览器
            self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer")
        def test_HandleConfirm(self):
            #导入异常类
            from selenium.common.exceptions import NoAlertPresentException
            url = "http://127.0.0.1:8080/test_confirm.html"
            #访问自定义网页
            self.driver.get(url)
            #通过id属性值找到页面上的按钮元素
            button = self.driver.find_element_by_id("button")
            #单击按钮元素,则会弹出一个confim提示框,上面显示“这是一个 confirm 弹出框”以及“确认”、“取消”按钮
            button.click()
            try:
                #使用driver.switch_to.alert方法来获取alert对象
                alert = self.driver.switch_to.alert
                time.sleep(2)
                #使用alert.text属性获取confirm框中的内容,关断言文字内容是否是“这是一个 confirm 弹出框”
                self.assertEqual(alert.text,u"这是一个 confirm 弹出框")
                #调用alert对象的accept()方法,模拟鼠标单击confirm弹窗上的“确认”按钮 ,以便关闭conform弹窗
                alert.accept()
                #取消下一行代码的注释,就会模拟单击confirm弹窗上的“取消”按钮
                # alert.dismiss()
            except NoAlertPresentException,e:
                #如果confirm框未弹出显示在页面上,则会抛出NoAlertPresentException异常
                self.fail(u"尝试操作的confirm框未被找到")
                print e
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__  == "__main__":
        unittest.main()

    45、操作JavaScript的prompt弹窗

    #encoding=utf-8
    import time
    import unittest
    from selenium import webdriver
    
    class visitLocalPromptByIe(unittest.TestCase):
        def setUp(self):
            #启动浏览器
            self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer")
        def test_HandlePrompt(self):
            url = "http://127.0.0.1:8080/test_prompt.html"
            #访问自定义网页
            self.driver.get(url)
            #使用id定位方式,找到页面上的按钮元素
            button = self.driver.find_element_by_id("button")
            #单击按钮
            button.click()
            time.sleep(2)
            #单击按钮元素后,弹出一介prompt提示框,上面将显示“这是一个 prompt 弹出框”、输入框、“确认”、“取消”
            #使用driver.switch_to.alert方法获取alert对象
            alert = self.driver.switch_to.alert
            #使用alert.text方法获取prompt框上面的文字,并断言文字内容 是否和“这是一个 prompt 弹出框”一致
            self.assertEqual(alert.text,u"这是一个 prompt 弹出框")
            time.sleep(1)
            #调用alert.send_keys()方法,在prompt窗体的输入框中输入“改变命运,从每天学习2小时开始”
            alert.send_keys(u"改变命运,从每天学习2小时开始")
            #使用alert对象的accept()方法点击“确定”按钮,关闭prompt框
            alert.accept()
            #也可使用alert对象的dismiss()方法点击“取消”按钮,关闭prompt框
            # alert.dismiss()
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()

    46、操作浏览器Cookie

    #encoding=utf-8
    import time
    import unittest
    from selenium import webdriver
    
    class visitSogouByIe(unittest.TestCase):
        def setUp(self):
            #启动浏览器
            self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer")
        def test_Cookie(self):
            url = "http://www.sogou.com"
            #访问搜狗首页
            self.driver.get(url)
            #得到当前页面下的所有Cookies,并输出他们所在域、name、value、有效期的路径
            cookies = self.driver.get_cookies()
            for cookie in cookies:
                print "%s -->%s --> %s --> %s --> %s" % (cookie["domain"],cookie["name"],cookie["value"],cookie["expiry"],cookie["path"])
    
            #根据Cookie的name值获取该条Cookie信息,获取 name值为“SUV”的Cookie信息
            ck = self.driver.get_cookie("SUV")
            print "%s-->%s--> %s --> %s --> %s" % (ck["domain"],ck["name"],ck["value"],ck["expiry"],ck["path"])
    
            #删除cookie有两种方法
            #第一种:通过cookie的name属性,删除name值为“ABTEST”的Cookie信息
            print self.driver.delete_cookie("ABTEST")
    
            #第二种:一次性删除全部Cookie信息
            self.driver.delete_all_cookies()
            #删除全部Cookie后,再次查看Cookies,确认是否已被全部删除
            cookies = self.driver.get_cookies()
            print cookies
    
            #添加自定义Cookie信息
            self.driver.add_cookie({"name":"WOW","value":"12345678900"})
            #查看添加的Cookie信息
            cookie  = self.driver.get_cookie("WOW")
            print cookie
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()

    练习:登录163邮箱

    #encoding=utf-8
    import time
    import unittest
    from selenium import webdriver
    from selenium.common.exceptions import TimeoutException
    
    class login163MailByIe(unittest.TestCase):
        def setUp(self):
            #启动浏览器
            self.driver = webdriver.Ie(executable_path = "D:\IEDriverServer")
        def test_login(self):
            url = "http://mail.163.com"
            #设置页面加载限制时间为4秒
            self.driver.set_page_load_timeout(10)
            #窗口最大化
            self.driver.maximize_window()
            try:
                stime = time.time()
                #访问163首页
                self.driver.get(url)
            except TimeoutException,e:
                print u"页面加载超过设定时间,超时"
                #当页面加载时间超过设定时间,通过执行javascript来停止加载,然后继续执行后续动作
                self.driver.execute_script("window.stop()")
            end = time.time() - stime
            print end
            #切换进iframe控件
            # 目前126和163登录的iframe的id也是动态变化,所以不能用id定位iframe
            #使用各种xpath定位表达式,在浏览器中可以成功定位,但Pycharm中一直报错(NoSuchElementException),只成功过执行一次
            iframe = self.driver.find_element_by_xpath('//iframe[contains(@id,"x-URS-iframe")]')
            self.driver.switch_to.frame(iframe)
            #获取用户名输入框
            userName = self.driver.find_element_by_xpath("//input[@name='email']")
            # userName.click()
            userName.clear()
            userName.send_keys("chenyongliang_2013")
            #获取密码输入框
            pwd = self.driver.find_element_by_xpath("//input[@name='password']")
            #输入密码
            pwd.send_keys("xxx")
            #点击登录按钮
            self.driver.find_element_by_id("dologin").click()
            time.sleep(5)
            #断言登录成功
            self.assertTrue(u"退出" in self.driver.page_source)
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()
  • 相关阅读:
    iOS-iOS8模拟器设置中文键盘
    iOS-应用性能调优的25个建议和技巧
    IOS-通讯录
    IOS-录音
    IOS-视频
    IOS-音乐
    IOS-音效
    iOS开发实用技巧—Objective-C中的各种遍历(迭代)方式
    Android 带你玩转实现游戏2048 其实2048只是个普通的控件(转)
    Android TagFlowLayout完全解析 一款针对Tag的布局(转)
  • 原文地址:https://www.cnblogs.com/test-chen/p/10551995.html
Copyright © 2011-2022 走看看