1、下拉选择框操作

  下拉框就是HTML中<select>元素;
 
先列需求:
需求:使用‘注册A.html’页面,完成对城市的下拉框的操作
1).选择‘广州’
2).暂停2秒,选择‘上海’
3).暂停2秒,选择‘北京’
 
我们首先可以通过直接定位下拉框中的内容对应的元素,完成对下拉框元素的处理,我们也可以通过select类
 
我们先来认识select类:
 
  说明:Select类是Selenium为操作select标签特殊封装的。
  实例化对象:
    select = Select(element)
    element: <select>标签对应的元素,通过元素定位方式获取,
  例如:driver.find_element_by_id("selectA")
 
常用可以用什么定位呢?
 
  1. select_by_index(index) --> 根据option索引来定位,从0开始
  2. select_by_value(value) --> 根据option属性 value值来定位
  3. select_by_visible_text(text) --> 根据option显示文本来定位
 
Select类实现步骤分析:
 
  1. 导包 Select类 -->     from selenium.webdriver.support.select import Select
  2. 实例化Select类      select = Select(driver.find_element_by_id("selectA"))
  3. 调用方法:          select.select_by_index(index)
 
我们来做一下上面需求:
from selenium.webdriver.support.select import Select
select = Select(driver.find_element_by_id("selectA"))
select.select_by_index(2) # 根据索引实现
select.select_by_value("sh") # 根据value属性实现
select.select_by_visible_text("A北京") # 根据文本内容实现
 

2、弹出框处理

  应用场景:页面操作中,一旦出现弹窗,不进行处理,后续的操作无法进行
  弹窗分类:1、系统弹窗(js实现)  2、自定义弹窗(前端代码封装)
 
网页中常用的弹出框有三种:
            1. alert 警告框
            2. confirm 确认框
            3. prompt 提示框
 
先列需求:
需求:打开注册A.html页面,完成以下操作:
1).点击 alert 按钮
2).关闭警告框
3).输入用户名:admin
 
说明:Selenium中对处理弹出框的操作,有专用的处理方法;并且处理的方法都一样
   (只要是系统弹窗,不论是哪一个,都是alert)
 
  1. 获取弹出框对象
      alert = driver.switch_to.alert
  2. 调用
      alert.text -->     返回alert/confirm/prompt中的文字信息
      alert.accept() -->   接受对话框选项
      alert.dismiss() -->   取消对话框选项
 
我们来做一下上面需求:大家可以做一下
 
自定义弹窗可以通过定位元素,来进行操作

3、滚动条操作

为什么需要滚动条呢?

  1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
  2. 页面注册同意条款,需要滚动条到最底层,才能点击同意
 
 
先提需求:打开注册页面A,暂停2秒后,滚动条拉到最底层
 
说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的。
  1. 设置JavaScript脚本控制滚动条
    js = "window.scrollTo(0,1000)"
    (0:左边距;1000:只是一个尽可能大的值,不是准确值)
  2. selenium调用执行JavaScript脚本的方法
    driver.execute_script(js)
 
我们来做一下上边需求:
 
# 最底层
js1 = "window.scrollTo(0,10000)"
driver.execute_script(js1)
# 最顶层
js2 = "window.scrollTo(0,0)"
driver.execute_script(js2)
 
 

web自动化08-下拉选择框、弹出框、滚动条的更多相关文章

  1. bootstrap 响应式导航条模板(含下拉菜单,弹出框)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Web标准:八、下拉及多级弹出菜单

    Web标准:八.下拉及多级弹出菜单 知识点: 1.带下拉子菜单的导航菜单 2.绝对定位和浮动的区别和运用 3.CSS自适应宽度滑动门菜单   1)带下拉子菜单的导航菜单 带下拉子菜单的就是在一级导航下 ...

  3. selenium+鼠标操作+键盘操作+下拉框+弹出框+滚动条+三种等待--代码

    鼠标操作 键盘操作 下拉框 弹出框 滚动条 1 from time import sleep 2 from selenium import webdriver 3 4 driver = webdriv ...

  4. 安卓系统浏览器中select下拉按钮无法弹出选择面板奇怪问题解决

    今天遇到个让人崩溃的问题: 平台: 安卓 4.0 描述: 使用 appcan 开发 hybrid 应用,手机上点击下拉选框按钮无法弹出选择面板. 说明: 发现 webkit 内核 position:f ...

  5. web自动化,下拉滚动到底部/顶部和下拉滚动到指定的元素

    在web自动化,经常会遇到页面显示内容太多的时候,页面就会出现滚动条,一般有两种方式进行下拉,一种是直接下拉到底部/顶部/中部,或者直接给定元素,直接下拉到指定元素的位置. 两种方式的共同点: 两种方 ...

  6. 黄聪:TinyMCE 4 增强 添加样式、按钮、字体、下拉菜单和弹出式窗口

    我最喜欢 WordPress 3.9 的更新是使用了 TinyMCE 4.0 编辑器.新的 TinyMCE 看起来看起来更整洁(真正匹配WP仪表板),它有一些非常不错的附加功能.我的很多老主题和插件必 ...

  7. 解决IE6下select显示在弹出框上问题

    利用定位position:absolute;z-index:1;和iframe[z-index:-1]来解决此问题,最好根据需要加上: border='0' frameborder='0' scrol ...

  8. 解决bootStrap selectpicker 下拉栏上方弹出

    最近项目中遇到了一个使用bootStrap selectpicker 进行下拉栏展示的时候出现在元素上方弹出展示的问题,可把我难受坏了,和测试互怼最终以失败告终(人家还是一个娇滴滴的小姑娘),在查了a ...

  9. select 下拉选择自动到textarea框

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. ⒁bootstrap组件 工具提示框 弹出框 警告框 基础案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 10.4 提高叠加处理速度(2) (harib07d)

    ps:能力有限,若有错误及纰漏欢迎指正.交流 sheet_refreshsub void sheet_refreshsub(struct SHTCTL *ctl, int vx0, int vy0, ...

  2. WordPress回复/评论本文可见

    给WordPress添加一个实用的小功能,那就是回复可见,评论文章才能见到隐藏内容. 在主题目录下找到functions.php文件,在合适位置添加下方的代码: // 回复可见 function re ...

  3. 当transcational遇上synchronized

    工作当中经常会遇到既需要开启事务管理,同时也需要同步保证线程安全的场景. 比如一个方法 @Transactional public synchronized void test(){ // } 不知道 ...

  4. Schillace 定律 背后的 Sam Schillace

    微软semantic-kernel(SK)团队发布了一篇博客文章:Early Lessons From GPT-4: The Schillace Laws[1] ,微软的CVP , Deputy CT ...

  5. ACM-学习记录-尺取法

    题目 给定一个数组和一个数s,在这个数组中找一个区间,使得这个区间之和等于s. 例如:给定的数组int x[14] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ...

  6. PDD也可以通过ID获取商品详情?

    先我们可以通过pinduoduo.item_get的接口传入商品的ID参数,这个接口可以获取到拼多多商品的详情数据,包括商品的标题.价格.原价.卖家的昵称.库存.销量.宝贝的链接.商品的备注.宝贝图片 ...

  7. 二进制安装Kubernetes(k8s) v1.23.4

    1.环境 网段 物理主机:192.168.1.0/24 service:10.96.0.0/12 pod:172.16.0.0/12 如果有条件建议k8s集群与etcd集群分开安装 1.1.k8s基础 ...

  8. kubernetes核心实战(三)--- ReplicationController

    5.ReplicationController ReplicationController 确保在任何时候都有特定数量的 Pod 副本处于运行状态.换句话说,ReplicationController ...

  9. [Java]Maven构建时报错: "Error:java: 读取E:\XX\XXX..jar时出错; error in opening zip file"

    删除本地仓库中对应的jar包,pom.xml再reimport

  10. 新手小白需要了解的 Go 基础细节杂谈

    今日记录一下 学习 golang 这门语言遇到的一些比较特殊的细节,供大家参考. 所以,在我们输出内容的时候,可以包含很多的非 ASCII 码字符.实际上,Go 是天生支持 UTF-8 的,任何字符都 ...