首页 > 其他分享 >web自动化测试复习巩固第二天

web自动化测试复习巩固第二天

时间:2024-01-29 16:37:59浏览次数:29  
标签:web 复习 元素 driver alert switch iframe 自动化 element

定位方法

selenium4:

  driver.find_element(定位策略用By类,定位表达式) --- 返回表达式匹配的第一个元素,如果找不到元素,会报错。

  driver.find_elements(定位策略用By类,定位表达式) --- 返回表达式匹配的所有元素,返回的是列表类型。

  By类:管理8种定位方式,每一种定位方式,都是一个类属性

  例:查找元素的方法 ele = driver.find_element(By.XPATH,'//input[contains(@class,"quickSearchInput")]')

#元素的输入操作,按Enter搜索

  ele.send_keys("selenium4",Keys.ENTER)


WebElement类:(属性和方法)

  常见的:

    1.clear() 清除操作

    2.send_keys() 输入操作

    3.click() 点击操作

 

    4.text() 获取元素的文本

    5.get_attribute() 获取元素属性

 

    6.location_once_scrolled_into_view 将元素滚动到可见区域

 

    7.screenshot() 获取当前元素的截图

    8.size 获取当前元素的大小

    9.location 获取当前原色的坐标

 

    10.is_displayed() 元素是否可见

    11.is_enabled() 元素是否可用

    12.is_selected() 复选框/单选框,当前元素是否选中了


三大等待

  1.sleep --- 强制等待

  2.智能等待

    2.1显式等待(常用)

      1.条件很丰富

      2.那里需要等待条件成立,哪里就调用,一次性

      条件:expected_conditions

      等待:WebDriverWait

      等待xxx条件成立,多久查询条件是否成立,成立就不等待了,不成立则超时报错。需要导包

        from selenium.webdriver.support import expected_conditions

        from selenium.webdriver.support.wait import WebDriverWait

      条件:

        visiblity_of_element_located(locator) 指定元素可见

        presence_of_element_located(locator) 指定元素存在

        element_to_be_clickable(mark) 指定的元素可点击

      等待:

        WebDriverWait(driver,超时时间,轮询周期-多久确认一次条件是否成立,默认是0.5s).until(条件)

    2.2隐式等待

      driver.implicitly_wait(10) 在会话期间只调用一次,全局可用。条件单一,即元素存在


面试题:找不到元素noSuchElement是什么原因?

  1.元素可能在iframe中

  2.没有等待,元素还没有加载出来

  3.元素定位表达式错误


 

三大切换

  窗口切换

    1.等待新窗口出现

      time.sleep(1)

    2.获取当前所有打开的窗口 --列表

      wins = driver.window_handles

      print("当前会话打开的所有窗口:",wins)

    3.切换到最后一个窗口

      driver.switch_to.window(wins[-1])

    4.切换回去

      driver.switch_to.window(wins[0])

  iframe切换

    1.识别元素在iframe当中

 

    2.切换进入iframe -- 传入iframe的定位

      driver.switch_to.frame(id/name属性 或者 iframe的索引 或者 webelement对象-driver.find_element)

        id/name属性

        webelement对象-driver.find_element ---- driver.find_element

        iframe的索引 ---- 获取到的是列表,从0开始

    3.切换回最开始的html

      driver.switch_to.default_content()

    4.回到上一层的iframe

      driver.switch_to.parent_frame()

alert切换

1.警告框 2.确认框 3.提示框

案例地址:http://www.runoob.com/js/js-popup.html

  1.触发alert弹框的出现

    等待:

      time.sleep(0.5)

      WebDriverWait(driver,5).until(EC.alert_is_present())

  2.调用driver.switch_to.alert 切换到alert弹框 --- Alert类

    driver.switch_to.alert 或者 alert = Alert(driver) 需要导入Alert包

  3.关闭弹框

    alert.accept() 确定

    alert.dismiss() 取消

    alert.text 获取文本

    alert.send_keys() 输入文本

 

标签:web,复习,元素,driver,alert,switch,iframe,自动化,element
From: https://www.cnblogs.com/xuhaotest/p/17994799

相关文章

  • Cisco Catalyst Center 2.3.7.4-VA - 网络管理和自动化
    CiscoCatalystCenter2.3.7.4-VA-网络管理和自动化CiscoCatalystCenter-NetworkManagementandAutomation请访问原文链接:https://sysin.org/blog/cisco-catalyst-center/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoCatalystCenter节约时间,不再......
  • 二维凸包复习笔记
    Graham扫描法向量的叉乘:平行四边形面积,顺负逆正,x1y2-x2y11.确定1个凸包上的点:纵坐标最小(纵坐标相同时横坐标最小)的点2.极角排序3.单调栈维护凸包点击查看代码//二维凸包#include<bits/stdc++.h>usingnamespacestd;structt1{ doublex,y;}t[100005];ints[100......
  • 和好友一起学习如何3分钟自动化搭建幻兽帕鲁联机服务器]
    和好友一起学习如何3分钟自动化搭建幻兽帕鲁联机服务器《幻兽帕鲁》的意外火爆,源于其巧妙地将各种元素进行融合,形成了一种独特的游戏体验。这款游戏,让人看到了“缝合”游戏的新高度,也让人感叹,原来缝合得当,也能如此吸引人。帕鲁,是游戏中的核心元素,它既是战斗的小精灵,也是生活的......
  • org.springframework.web该引入哪个包?
    只引入springboot并没有引入springmvc?难道两者不是包含关系吗?还要再手动引入?不懂。。<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.8</versi......
  • Websocket 简单使用
    vue3  <scriptsetup>import{reactive,ref,onMounted,onBeforeMount,onUnmounted}from'vue'onMounted(()=>{initWebsocket()})onUnmounted(()=>{WebSocketonclose()})constws=reactive({socket:null,})constini......
  • Spring WebSocket实现实时通信的详细教程
    简介WebSocket是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的,必须是客户端主动触发的行为,服务端只是......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-37-如何截图-上篇
    1.简介这个系列的文章也讲解和分享了差不多三分之一吧,突然有小伙伴或者童鞋们问道playwright有没有截图的方法。答案当然是:肯定有的。宏哥回过头来看看确实这个非常基础的知识点还没有讲解和分享。那么在这个契机下就把它插队分享和讲解一下。Playwright提供了一个截屏的API:page.......
  • HTML5 WebSocket 详解及使用
    WebSocket没用过的同学,听上去,可能觉得很难,其实很简单,本章讲解了WebSocket基本信息,以及附有代码例子WebSocket是什么?WebSocket是HTML5提供的一种在单个TCP连接上进行全双工通讯的协议。(双向通信协议)WebSocket的作用?实现客户端与服务器之间的双向通信,允许服务端主动......
  • 自动化测试神器:Python之Pytest库入门使用
    (自动化测试神器:Python之Pytest库入门使用)本文写作思路和建议:1、本文从Python的Pytest库基本安装使用开始讲起,详细说明pytest如何操作,如何快速入门?2、同时说明了pytest的常用特性,如何在自动化测试中进行应用,达到应有的测试效率?3、建议:阅读本文基本可以掌握Pytest的用法,另外学......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......