Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url) 您所在的位置:网站首页 selenium如何判断弹框存在 Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url)

Python +Selenium之(窗口切换操作、弹出对话框处理、获取当前窗口的title跟url)

2023-07-02 22:18| 来源: 网络整理| 查看: 265

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 在这里插入图片描述

2、获取当前窗口的title跟url 获取当前窗口的title driver.title 获取当前窗口的url driver.current.url 如果是需要截屏 driver.get_screenshot_as_file('文件名.png') 3、selenium弹出对话框处理

弹出对话框一般有三种样式

第一种 arert 类型的 操作方法:driver.switch_to_alert.accept() 直接点击确定

在这里插入图片描述

第二种confirm

有确定跟取消

操作方法:driver.switch_to.alert.dismiss()

在这里插入图片描述

第三种prompt

prompt是有输入框的

比如输入clear driver.switch_to.alert.send_keys('clear) #在弹出框中输入内容 driver.switch_to.alert.accept()

在这里插入图片描述

[ ]还有一种,获取弹出框文本的值 driver.switch_to.alert.text

(下图是弹出框的元素定位不到使用 text方法) 在这里插入图片描述 部分弹出框的元素是可以定位给到的,就直接用f12查找元素值 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有