首页 > 其他分享 >Selenium16--切换消息框

Selenium16--切换消息框

时间:2022-12-15 22:14:32浏览次数:30  
标签:网页 -- Selenium16 driver Alert 点击 消息 按钮 切换

消息框

是指在网页里进行某些操作(点击按钮、点击超级链接等)后,在网页上一层出现弹出来的对话框,对话框里显示要提示给客户的消息。

  • JavaScript根据功能把它分为三类
    • Alert 提示框
    • Confirm 确认框
    • Prompt 输入框
  • selenium中把它们统称为Alert

消息框的特点

因为并不是网页元素,不是html语法实现的,而是用JavaScript脚本实现的,所以不能像其他网页里的元素那样进行定位。

  • 在对话框上点击鼠标右键,无菜单
  • 大多数都是模态的,如果不关闭它,后面的网页无法进行操作。
    注意:消息框不同于网页里的div标记的元素,虽然div元素(代表网页里的一块区域)可以显示为浮动在其他区域上一层的效果,但是不具备上述两个特点。

Alert类

Alert类:是Selenium中消息框处理的专用类

初始化Alert类对象

# 切换到消息框,得到Alert对象实例
对象 = driver.switch_to.alert

Alert类属性和方法

Alert类对象属性:记录消息框里的信息

变量 = 对象.text  # str类型消息框里的信息

Alert类对象方法:用于操作消息框

对象.accpet() # 点击确定/确认按钮
对象.dismiss() # 点击取消按钮
对象.send_keys(数据) # 向prompt类型消息框里输入数据

常见异常

  • UnexpectedAlertPresentException:在网页上层有消息框时,没有处理消息框(没有关闭它),就想操作网页,此时就会抛出此异常,提醒必须要关闭消息框之后,才能操作网页
  • NoAlertPresentException:消息框已经关闭或消息框根本没有弹出来,执行切换或执行关闭语句时,就会抛出此异常。
"""
  打开ECShop前台登录页
  点击"立即登陆",等待3秒
  切换到消息框
  获得其文本,打印出来
  点击"确定"按钮
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/user.php')
driver.find_element(By.NAME,'submit').click()  # 点击 登录按钮
a1 = driver.switch_to.alert
t1 = a1.text
print(t1)
a1.accept()
sleep(3)
driver.quit()
"""
  打开"三星SGH-F258"商品详情页(http://localhost/upload/goods.php?id=19)
  点击"加入购物车",等待3秒
  切换到消息框
  获得其文本,打印出来
  点击"取消"按钮
  点击"加入收藏夹
  切换到消息框
  获得其文本,打印出来
  点击"确定"按钮
"""

"""
打开http://www.sahitest.com/demo/promptTest.htm
点击Click For Prompt按钮,等待3秒
切换到消息框
输入hello
点击"确定"
打印文本框当前内容
"""


标签:网页,--,Selenium16,driver,Alert,点击,消息,按钮,切换
From: https://www.cnblogs.com/sean-test/p/16986108.html

相关文章

  • 第二章 虚拟机安装相关
    2.网关配置vi/etc/sysconfug/network-scripts/ifcfg-ens-33启动网关:systemctlrestartnetwork.service2.1防火墙查看状态:systemctlstatusfirewalld......
  • 笔记-C语言中static作用
    C语言中,static关键词可以用来修饰变量和函数,用static关键词修饰的变量成为静态变量。static关键词的作用主要包括3个方面:1.隐藏一个项目中往往包括多个.c文件,所有未加st......
  • flask-06
    一、flask项目演示pycharm打开项目 安装依赖:虚拟环境 pipinstall-rreq.txt在数据库创建库:movie    看一下:root用户密码不是123,改代码,两个地方(__init__.p......
  • NOIP2022 题解
    终于有机会补NOIP的题了T1考虑枚举C与F的纵列考虑预处理出每个点最左边和最下边可以延伸到哪之后枚举列,然后对行做类似于扫描线的操作,统计有多少可行的"第一横行"......
  • WinForm(十)项目框架结构
    看到下面的项目结构,是否曾经相识?不要笑,这也是一种项目结构,极简主义。   项目结构没有对错,合适就好,但也要有几个要求,至少要做到结构明确,清晰,当然上图的结构......
  • 纯手搓的超级炫酷的网页!看看效果吧~
    肝了半天的代码 indexindex.html(最新)<html> <head> <title>BMPro!</title> <script> window.oncontextmenu=function(e){ e.preventDefault();//取......
  • HDU 4614 ——线段树+二分
    //题意:茜茜学姐的情人节到了!众所周知,茜茜学姐喜欢帅气的学弟,所以她当然有很多学弟送的花瓶,据不完全统计,茜茜学姐有N个花瓶(标号为0~N-1)。当然茜茜学姐也是个魅力四射......
  • @Bean的使用
    Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的......
  • 面试-JVM
    1.java内存模型/java运行时数据区模型?元空间属于本地内存而非JVM内存内存模型 程序计数器  1.作为字节码的行号指示器,字节码解释器通过程序计数器来确定下一......
  • 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的行......