#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_identifyPopUpWindowByPageSource(self): # 导入多个异常类型 from selenium.common.exceptions import NoSuchWindowException,TimeoutException # 导入期望场景类 from selenium.webdriver.support import expected_conditions as EC # 导入By类 from selenium.webdriver.common.by import By # 导入WebDriverWait类 from selenium.webdriver.support.ui import WebDriverWait # 导入堆栈类 import traceback # 导入时间模块 import time url = "http://127.0.0.1/test_popup_window.html" # 访问自动以测试网页 self.driver.get(url) # 显示等待找到页面上链接文字为“sogou 搜索”的链接元素,找到后点击它 WebDriverWait(self.driver, 10, 0.2).until(EC.element_to_be_clickable \ ((By.LINK_TEXT, 'sogou 搜 索'))).click() # 获取当前所有打开的浏览器窗口句柄 all_handles = self.driver.window_handles # 打印当前浏览器窗口句柄 print self.driver.current_window_handle # 打印打开的浏览器窗口的个数 print len(all_handles) # 等待2秒,以便更好查看效果 time.sleep(2) # 如果存储浏览器窗口句柄的容器不对空,再遍历all_handles中所有的浏览器句柄 if len(all_handles) > 0: try: for windowHandle in all_handles: # 切换窗口 self.driver.switch_to.window(windowHandle) # 获取当前浏览器窗口的页面源代码 pageSource = self.driver.page_source if u"搜狗搜索" in pageSource: # 显示等待页面搜索输入框加载完成, # 然后输入“sogou 首页的浏览器窗口被找到” WebDriverWait(self.driver, 10, 0.2).until \ (lambda x: x.find_element_by_id("query")). \ send_keys(u"sogou 首页的浏览器窗口被找到") time.sleep(2) except NoSuchWindowException, e: # 如果没找到浏览器的句柄,会抛出NoSuchWindowException异常, # 打印异常的堆栈信息 print traceback.print_exc() except TimeoutException, e: # 显示等待超过规定时间后抛出TimeoutException异常 # 打印异常的堆栈信息 print traceback.print_exc() # 将浏览器窗口切换回默认窗口 self.driver.switch_to.window(all_handles[0]) # 断言当前浏览器窗口页面源代码中是否包含“你爱吃的水果么?”关键内容 self.assertTrue(u"你爱吃的水果么?" in self.driver.page_source) def tearDown(self): # 退出IE浏览器 self.driver.quit() if __name__ == '__main__': unittest.main()
今天的文章Selenium WebDriver- 通过源码中的关键字找到我们要操作的句柄,用于多个窗口之间切换分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/47799.html