Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url) | 您所在的位置:网站首页 › selenium如何判断弹框存在 › Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url) |
1、切换窗口
在使用webdriver的时候,经常会遇到在多个窗口之间切换的操作,比如在A窗口操作某个元素,跳转到B窗口,然后又进入C窗口,此时这种情况就需要用到特殊的窗口处理方法 - [ ] 切换到新窗口里面的操作 循环遍历 deriver.window_handles 如果要在新的窗口查找元素: driver.switch_to.wondow(handle)的方法切入新窗口 切换到最初的窗口 需要保存主窗口的handle 关闭窗口用 close比如: 打开百度,输入周杰伦,点击链接打开新的窗口 from selenium import webdriver from selenium.webdriver.common.keys import Keys #导入回车键的包 driver = webdriver.Chrome(r"D:\Users\CT-LA\AppData\Local\Programs\Python\Python36\Scripts\chromedriver.exe") driver.implicitly_wait(10) driver.get('https://www.baidu.com/?tn=02003390_7_hao_pg') file=driver.find_element_by_id('kw') file.send_keys('周杰伦') file.send_keys(Keys.ENTER) #点击周杰伦_百度搜索的链接 ele=driver.find_element_by_xpath('//*[@id="1"]/h3/a').click() #显示标题栏文本,可以查看显示的当前页面 print(driver.title) #保存主窗口的handle mainWindow=driver.current_window_handle print(driver.window_handles) for handle in driver.window_handles: # 切换到新窗口 driver.switch_to.window(handle) #检查是否是我们需要进入的window if '周杰伦_百度搜索' in driver.title: print(handle) #如果要切换到主窗口 (在主窗口继续定位主窗口的元素) driver.switch_to.window(mainWindow)CDwindow-D7EC90FCB5FCC78B71F796D7DE849C66就是handle 弹出对话框一般有三种样式 第一种 arert 类型的 操作方法:driver.switch_to_alert.accept() 直接点击确定有确定跟取消 操作方法:driver.switch_to.alert.dismiss()prompt是有输入框的 比如输入clear driver.switch_to.alert.send_keys('clear) #在弹出框中输入内容 driver.switch_to.alert.accept()(下图是弹出框的元素定位不到使用 text方法) |
CopyRight 2018-2019 实验室设备网 版权所有 |