Selenium WebDriver- 操作JavaScript的confirm弹窗

#encoding=utf-8
import unittest
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

class VisitSogouByIE(unittest.TestCase):

    def setUp(self):
        #启动IE浏览器
        #self.driver = webdriver.Firefox(executable_path = "e:\\geckodriver")
        self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")
        
    def test_Handleconfirm(self):
        from selenium.common.exceptions import NoAlertPresentException
        import time
        url = "http://127.0.0.1/test_confirm.html"
        # 访问自动以测试网页
        self.driver.get(url)
        # 通过id属性值查找页面上的按钮元素
        button = self.driver.find_element_by_id("button")
        # 单击按钮元素,则会弹出一个confirm提示框,
        # 上面显示“这是一个 confirm 弹出框”、“确定”和“取消”按钮
        button.click()
        try:
            # 较高版本的selenium推荐使用driver.switch_to.alert方法代替
            # driver.switch_to_alert()方法来获取alert对象
            alert = self.driver.switch_to.alert
            time.sleep(2)
            # 使用alert.text属性获取confirm框中的内容,
            # 并断言文字内容是否是“这是一个 confirm 弹出框”
            self.assertAlmostEqual(alert.text, u"这是一个 confirm 弹出框")
            # 调用alert对象的accept()方法,模拟鼠标单击confirm弹窗上的“确定”按钮
            # 以便关闭confirm窗
            #alert.accept()
            # 取消下面一行代码的注释,就会模拟单击confirm框上的“取消”按钮
            alert.dismiss()
        except NoAlertPresentException, e:
            # 如果confirm框未弹出显示在页面上,则会抛出NoAlertPresentException的异常
            self.fail("尝试操作的confirm框未被找到")
            print e



    def tearDown(self):
        # 退出IE浏览器
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

 

posted @ 2018-04-03 17:20  小七Libra  阅读(864)  评论(0编辑  收藏  举报