首页 > 其他分享 >selenium之窗口切换

selenium之窗口切换

时间:2024-04-15 15:35:22浏览次数:26  
标签:窗口 selenium driver window alert switch 切换 find

selenium之窗口切换

1、弹窗

1.1 Alter

driver.find_element(By.ID, "alert").click()

#窗口切换并获取text
print(driver.switch_to.alert.text)

#窗口切换并点击 确定
driver.switch_to.alert.accept()

driver.find_element(By.ID, "alert").click()

#窗口切换并点击 取消
driver.switch_to.alert.dismiss()

1.2 Confirm

driver.find_element(By.ID, "confirm").click()

#窗口切换并获取text
print(driver.switch_to.alert.text)

#窗口切换并点击 确定
driver.switch_to.alert.accept()
driver.find_element(By.ID, "confirm").click()

#窗口切换并点击 取消
driver.switch_to.alert.dismiss()

1.3 Prompt

driver.find_element(By.ID, "prompt").click()
#窗口切换并获取text
print(driver.switch_to.alert.text)

#窗口切换并点击 确定
driver.switch_to.alert.accept()

#页面刷新
driver.refresh()

driver.find_element(By.ID, "prompt").click()

#窗口切换并点击 取消
driver.switch_to.alert.dismiss()

driver.refresh()
driver.find_element(By.ID, "prompt").click()

#窗口切换并输入
driver.switch_to.alert.send_keys("你大爷")

#窗口切换并点击 确定
driver.switch_to.alert.accept()



2、标签页

#获取所有句柄
handles = driver.window_handles

# 同句柄的list对象切换
driver.switch_to.window(handles[index])

# 获取当前标签页的句柄
handle = driver.current_window_handle

# 切换至最新打开的标签页
def switch_to_current(self):
    handles = self.driver.window_handles
    print(handles)
    current_window = self.driver.current_window_handle
    print(current_window)
    for window in handles:
        if handles.index(window) == len(handles)-1:
            self.driver.switch_to.window(window)
            break
            
# 打开新标签页并切换到新标签页
driver.switch_to.new_window('tab')

# 打开一个新窗口并切换到新窗口
driver.switch_to.new_window('window')



3、frame

本质:页面(html)内嵌套一个页面(html);一个完整的页面即是一个document,所以也是一个嵌套的document;要操作嵌套的html/document需要切换到里面去;常见的frame表现形式有:frame标签/iframe标签;

# 定位生日元素
driver.find_element(By.NAME, "birthday").click()
time.sleep(3)
frame_ele = driver.find_element(By.XPATH, "/html/body/div[7]/iframe")

# 进入了frame
driver.switch_to.frame(frame_ele)  
driver.find_element(By.ID, "dpTodayInput").click()

 # 在frame里面操作完之后;一定要出来这个frame
driver.switch_to.parent_frame()

标签:窗口,selenium,driver,window,alert,switch,切换,find
From: https://www.cnblogs.com/PengHwei/p/18136045

相关文章

  • Mac python 多版本安装、删除、切换
    brewinstallpyenv版本验证pyenv-v 二查看所有的Python版本pyenvversions *指向的是当前所使用的版本,system是系统安装的python三查看所有可以安装的python版本pyenvinstall--list 截图部分四安装指定版本pyenvinstall3.8.9 五......
  • 2024年4月14日-UE5-时间膨胀、慢动作、切换地图、刷BOSS
    把BOSS变大一点 打开我的游戏基础,蓝图里新建一个数组的变量,用来监控场上所有的敌人是否被击杀 打开怪物总类,在所有怪物初始化之后放入数组,死亡后移出数组,数组为空就召唤Boss 在我的游戏基础蓝图里,新建一个自定义事件 回到怪物总类里,再怪物死亡后,添加一个序列怪物......
  • hive窗口分析函数使用详解系列二之分组排序窗口函数
    1.综述我们讨论面试中各大厂的SQL算法面试题,往往核心考点就在于窗口函数,所以掌握好了窗口函数,面对SQL算法面试往往事半功倍。已更新第一类聚合函数类,点击这里阅读hive窗口函数聚合函数类本节介绍Hive聚合函数中的第二类聚合函数:分组排序窗口函数。这些函数的用法不仅仅适用于......
  • HarmonyOS NEXT应用开发——Navigation开发 页面切换场景范例
    简介在应用开发时,我们常常遇到,需要在应用内多页面跳转场景时中使用Navigation导航组件做统一的页面跳转管理,它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。除此之外还拥有动态加载,navPathStack路由跳转。本文就以Navigation页面切换范例为例,来展......
  • 图像框切换图片-极语言
    比如我有两张图片3.bmp、4.bmp。 程序代码如下:程序段窗体消息(窗口,消息,参数,数据)判断(消息)为窗口关闭停止为单击左键{左键点击(参数)}处理窗口(窗口,消息,参数,数据)结束程序段窗体启动结束程序段按钮2_点击整数图片1=加载图像(0,"3.bmp",......
  • 【面试准备】窗口函数学习
    昨天面试,技术问的比较简单,甚至没有问算法。业务的话,应该是我没有过面的主要原因,后续展开分析#技术:唯一难倒我的是一个sql##题目:员工表找出每个部门员工年龄最大的两个员工。在MySQL中,你可以使用窗口函数来查询每个部门年龄最大的两名员工。MySQL8.0及以上版本支持窗口函数。以......
  • SeleniumBase 制作WEB用户使用导览,并导出 JS-使用笔记(三)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(三)SeleniumBase制作WEB用户使用导览,并导出JSSeleniumBase包含强大的JS代码生成器,用于将Python转换为JavaScript,而制作用户导览,就是其中的应用之一,用户导览能将SaaS产品采用率提高10倍或更多目录创建导览......
  • npm,registry,镜像源,npm切换源,yarn,cnpm,taobao,nrs
    描述我们在使用node的npm下载依赖的时候,往往下载速度很慢,那是因为npm默认的是npm处于国外的官方镜像源。所以需要切换到国内的镜像源来加速依赖下载。所以本文推荐一款简单好用npm镜像源管理器,可以方便开发者管理自己的镜像源。推荐:npm-registry-nrs......
  • 2-72. 创建 NPC 基本信息并实现根据场景切换显示
    添加NPC添加动画创建NPCMovement修改DataCollection创建NPCManager给NPC添加阴影修改NPCMovement关闭NPC的重力测试修改CurrentScene,然后运行游戏,会发现NPC不见了,这就对了项目相关代码代码仓库:https://gitee.com/nbda1121440/farm-tu......
  • selenium之定位方式和元素操作
    selenium之定位方式和元素操作八大定位方式导包:fromselenium.webdriver.common.byimportBy1、标签id属性的定位ele=driver.find_element(by=By.ID,value="search-input")2、标签name属性的定位ele=driver.find_element(by="name",value="search-input")3......