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()