自动化测试-web(弹窗/滚动条/鼠标/等待等操作)

这篇具有很好参考价值的文章主要介绍了自动化测试-web(弹窗/滚动条/鼠标/等待等操作)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、弹窗

为什么要处理弹窗?

如果页面操作过程中,有弹窗出现,不处理,无法继续对页面操作。

弹窗类型:

js原生弹窗: 警告框、输入框、提示框,这些必须处理

如何处理:

1)获取弹窗对象

2)点击同意或取消方法

alert 弹窗:只有信息及确认按钮

自动化测试-web(弹窗/滚动条/鼠标/等待等操作),selenium

confirm弹窗:在alert弹窗基础上增加了取消按钮

自动化测试-web(弹窗/滚动条/鼠标/等待等操作),selenium

prompt 弹窗: 在confirm基础上增加了可以输入文本

自动化测试-web(弹窗/滚动条/鼠标/等待等操作),selenium

示例:

driver.switch_to.alert.accept() # 确定同意,三种弹窗都可以使用
driver.switch_to.alert.dismiss()# 取消不同意,confirm 和 prompt弹窗中使用
title = driver.switch_to.alert.text #打印弹窗信息
alert = driver.switch_to.alert # 获取alert对象
alert.send_keys() #prompt 弹窗中输入内容

二、滚动条

1. 定义js语句

2. 调用执行js方法

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome("/usr/local/bin/chromedriver")
driver.get("https://www.hao123.com/")
driver.maximize_window()
sleep(5)
# 向下
js_down = "window.scrollTo(0,document.body.scrollHeight)"
# js_down = "window.scrollTo(0,1000)"
# 执行js方法
driver.execute_script(js_down)
sleep(5)
# 向上
js_top = "window.scrollTo(0,0)"
# 执行js方法
driver.execute_script(js_top)
sleep(5)
driver.quit()

三、鼠标操作

导包:

from selenium.webdriver import ActionChains

实例化鼠标对象:

action = ActionChains(driver)

调用鼠标方法:

  • action.move_to_element(elementxx) 鼠标悬停
  • action.context_click(elementxx) 鼠标右击
  • action.double_click(elementxx) 鼠标双击
  • action.drag_and_drop(source,target) 拖拽

执行鼠标操作:

action.perform() 调用鼠标方法并不会去执行鼠标操作,必须调用perform才会执行

driver = webdriver.Chrome("/usr/local/bin/chromedriver")
driver.get("https://www.baidu.com")

driver.maximize_window()
sleep(5)
# 实例化鼠标对象
action = ActionChains(driver)
na = driver.find_element_by_xpath('//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]')
# 鼠标右击
action.context_click(na).perform()
sleep(5)
driver.quit()

四、等待

什么是等待?

代码执行过程中,第一次未找到元素,先不抛出异常。 激活等待时间,在等待过程中如果找到元素就执行。

为什么要等待?

由于网络或配置与原因,导致元素未加载出来,而代码已执行,会触发异常

元素等待类型:

1、隐式等待

说明:针对全部元素生效

方法:driver.implicitly_wait(x秒)

提示:项目中,如果未封装自动化框架时,推荐使用

2、显式等待

说明:针对单个元素生效,可以修改查找频率和超时时间

特点:查找并返回元素

用法:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver

driver = webdriver.Chrome("/usr/local/bin/chromedriver")
# 显示等待 -> 返回查找到的元素
el = WebDriverWait(driver,10,0.5).until(lambda x:x.find_element(By.CSS_SELECTOR,"#userAA"))
el.send_keys("admin")

3、强制等待

语法: sleep(10)

提示: 执行到这句必须等待10秒

from time import sleep
sleep(5)

自动化测试-web(弹窗/滚动条/鼠标/等待等操作),selenium

五、frame框架

frame 标签作用: 在页面中加载另一个页面

为什么要处理iframe?

焦点默认在启动页面,如果不处理iframe,无法操作iframe嵌入的页面元素

如何处理?

  • 切换到iframe: driver.switch_to.frame(iframe元素)
  • 操作元素
  • 回到默认页面:driver.switch_to.default_content()

六、切换多窗口

为什么要切换?

selenium 默认启动时,所有的焦点都在启动窗口,那么意味着无法操作其他窗口的标签

如何切换?

获取窗口句柄: driver.window_handles

使用句柄切换窗口: driver.switch_to.window(handle)

句柄:窗口的唯一标识符

多窗口之间切换工具封装:

自动化测试-web(弹窗/滚动条/鼠标/等待等操作),selenium

如果定位不到元素该怎么办?

  • 元素定位代码是否正确
  • 是否匹配到唯一元素
  • 是否有元素等待
  • 是否需要鼠标悬浮
  • 元素是否在新窗口
  • 元素是否存在于iframe标签中

七、截图

为什么要截图?

出错后,方便查看错误的原因

如果截图?

driver.get_screenshot_as_file("xxx.png")

图片命名添加时间戳

driver.get_screenshot_as_file("error_{}.png".format(time.strftime("%Y_%m_%d %H_%M_%S")))

八、cookie

说明:由服务器生成,存储在客户端的登录凭证

使用:

获取cookie: driver.get_cookies()

添加cookie:   driver.add_cookie(data)文章来源地址https://www.toymoban.com/news/detail-852232.html

到了这里,关于自动化测试-web(弹窗/滚动条/鼠标/等待等操作)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试系列-Selenium三种等待详解

    第一种也是最简单粗暴的一种办法就是强制等待sleep(time),强制让程序等time秒时间,不管程序能不能跟上速度,还是已经提前到了,都必须等time时长。 如下代码案例所示: 这种叫强制等待,不管你浏览器是否加载完了,程序都得等待5秒,5秒一到,继续执行下面的代码,作为

    2024年04月10日
    浏览(79)
  • Selenium自动化测试:详解显示等待和条件类

    了解Selenium中的显示等待和条件类,以确保UI自动化测试用例的稳定性。掌握各种等待条件,如元素出现、可见、可点击等,以及实现原理。

    2024年02月03日
    浏览(46)
  • Python+Selenium4三大等待&预期条件_web自动化(4)

    目录 0. 上节回顾 1. 定位失败的原因 2. 强制等待 3. 隐式等待 4. 显式等待 【重点难点】 4.1. 实例化 WebDriverWait 对象 4.2. 指定等待条件 4.3. 等待条件的具体要求 4.3. 1. 等待条件是一个函数 4.3. 2. 返回值是布尔值 4.3. 3. 只有一个参数,参数值是driver 4.3. 4. 出现异常 5. 流畅等待 (

    2024年02月11日
    浏览(49)
  • 爬虫学习(13):selenium自动化测试(二):等待页面加载完成

    在上一篇已经讲过了大部分的知识点和实战,本篇主要内容为知识点回顾和多个元素的定位知识点补充,以及补充页面加载知识点和案例。 在一个页面中有很多不同的策略可以定位一个元素。在你的项目中,你可以选择最合适的方法去查找元素。Selenium提供了下列的方法给你

    2024年02月06日
    浏览(59)
  • 【Python自动化测试】:弹窗的处理

    有些页面弹出框,如果不处理,就无法做后续操作 【描述】:包含提示信息和【确认】按钮 【操作】:1、获取弹窗内容;2、进行“确认”操作 【语法实现】 1、获取弹窗内容: driver.switch_to.alert.text 2、进行确认操作: driver.switch_to.alert.accept() 【代码实现】 【描述】:包含

    2024年02月14日
    浏览(40)
  • python自动化测试selenium核心技术三种等待方式

    UI自动化测试过程中,可能会出现因测试环境不稳定、网络慢等情况,如果不做任何处理的话,会出现无法定位到特定元素而报错,导致自动化测试无法顺利执行。 selenium官网手册:Waits | Selenium slenium自动化测试中,主要涉及三种等待方式:     缺点:即使网络条件较好时

    2024年04月11日
    浏览(61)
  • 探索高效的HTTP异步接口测试方法:从轮询等待到自动化方案

    本文将深入探讨HTTP异步接口测试的多个方面,包括轮询等待、性能测试以及自动化方案。通过详细的解释和实际案例,帮助您了解如何有效地测试异步接口,确保系统的稳定性和性能。   在现代软件开发中,HTTP异步接口扮演着至关重要的角色,它们允许应用程序在进行任务

    2024年02月11日
    浏览(34)
  • web自动化之基础内容二(全网最详细,selenium获取断言信息,显示等待和隐式等待,xpath高级语法)-第二天

    获取到的断言信息就是实际结果 预期结果使我们确定的,直接写在代码中的 而实际结果是无法确定的,所以需要用一些方法去获取 代码示例 场景:当我们加载页面的时候,一些元素是需要时间的 就有可能发生,代码执行到了,而元素没有被加载出来 此时就会出现找不到元

    2024年01月17日
    浏览(45)
  • Selenium 做 Web 自动化,鼠标当然也要自动化!

    我们在做 Web 自动化的时候,有时候页面的元素不需要我们点击,值需要把鼠标移动上去就能展示各种信息。这个时候我们可以通过操作鼠标来实现,接下来我们来讲一下使用 selenium 做 Web 自动化的时候如何来操作鼠标。鼠标操作,我们可以使用 selenium 的 ActionChains 类来实现

    2024年02月03日
    浏览(45)
  • Web自动化之Selenium-鼠标操作

    本文总结了Selenium常用的鼠标操作。  打开百度网站,点击首页的新闻。 WebDriver封装了一套鼠标操作的包, ●引入包:from selenium.webdriver.common.action_chains import ActionChains。 ●定位元素,存储到某个变量:ele = driver.find_element_by_×××(\\\'××\\\')。 ●固定写法:ActionChains(driver).click(e

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包