from selenium import webdriver
from selenium.webdriver.common.by import By driver = webdriver.Chrome()
driver.get('https://******')
ele = driver.find_element(By.ID, 'xxx')

1.设置浏览器窗口大小

driver.set_windows(800, 800)

2.控制浏览器后退、前进

driver.back()

driver.forward()

3.模拟浏览器刷新

driver.refresh()

4.webdriver操作

清除文本

ele.clear()

模拟按键输入

ele.send_keys('hello world')

单击元素

ele.click()

提交表单(不提供搜索按钮的搜索框)

ele.send_keys('xxx')

ele.submit()

返回元素尺寸

size = ele.size

获取元素文本

text = ele.text

获取属性值(可以是id/name/type等属性)

attribute = ele.get_attribute('id')

元素是否可见(返回结果True or False)

result = ele.is_displayed()

5.鼠标操作

Webdriver中,与鼠标操作相关的方法都封装在ActionChains类中

from selemiun.webdriver import ActionChans

鼠标悬停

move_to_element()

右击

context_click()

双击

double_click()

拖动

drag_and_drop()

执行ActionChains类中存储的所有行为

perform()

例句

ActionChans(driver).move_to_element(ele).context_click().perform()

6.键盘操作

删除键(BackSpace)

ele.send_keys(Keys.BACK_SPACE)

空格键(Space)

ele.send_keys(Keys.SPACE)

制表键(Tab)

ele.send_keys(Keys.TAB)

回退键(Esc)

ele.send_keys(Keys.ESCAPE)

回车键(Enter)

ele.send_keys(Keys.ENTER)

全选(Ctrl+a)

ele.send_keys(Keys.CONTROL, 'a')

复制(Ctrl+c)

ele.send_keys(Keys.CONTROL, 'c')

剪切(Ctrl+x)

ele.send_keys(Keys.CONTROL, 'x')

粘贴(Ctrl+v)

ele.send_keys(Keys.CONTROL, 'v')

键盘F1...F12

ele.send_keys(Keys.F1) ... ele.send_keys(Keys.F12)

7.获得验证信息

获取当前页面的标题

title = driver.title

获取当前页面的URL

url = driver.current_url

获取当前页面元素的文本信息

text = ele.text

8.设置元素等待

from selemiun.webdriver.support.ui import webdriverWait
from selemiun.webdriver.support import expected_conditions as EC

显式等待: 等待某个条件成立则继续执行,否则达到最大时长抛出超时异常

element = webdriverWait(driver, 10, 0.5).until(EC.visibility_of_element_located((By.ID, 'xxx')))
element.send_keys('xx') 超时时间为10秒,每0.5秒检查一次,直到'xxx'元素是否可见,才会继续执行下面操作,超过10秒则抛出异常:NoSuchElementExcpetion

隐式等待

通过一定的时长等待页面上某个元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出NoSuchElementException异常。它的作用范围就是Webdriver对象实例的整个生命周期。

driver.implicitly_wait(20)

9.多表单切换

login_frame = driver.find_element(By.CSS_SELECTOR, 'xxxx')

driver.switch_to.frame(login_frame)

10.多窗口切换

获取当前窗口句柄

index_windows = driver.current_window_handle

获取所有窗口句柄

all_widows = driver.window_handles

第n个窗口

all_widows[n]

切换窗口

driver.switch_to.window(index_windows)

11.警告框处理 (适用于alert、confirm、prompt)

定位到警告框

alert = driver.switch_to.alert

获取警告框中的文字信息

alert_text = alert.text

接受警告框

alert.accept()

解散现有警告框

alert.dismiss()

在警告框输入文本(如果支持)

alert.send_keys('xxx')

12.下拉框处理

WebDriver提供了Select类来处理下拉框

Select类用于定位'select'标签

<select id="nr">
<option value="10">10条</option>
<option value="20">20条</option>
<option value="30">30条</option>
<option value="40">40条</option>
</select>
from selenium.webdriver.support.select import Select

sel = driver.find_element(By.XPATH, '//select[@id='nr']')

通过value值定位下拉选项

Select(sel).select_by_value('20')

通过text值定位下拉选项

Select(sel).select_by_visible_text('40条')

通过选项顺序定位选项(从0计数)

Select(sel).select_by_index(0)

13.上传文件

input上传,直接定位元素,输入文件路径名称即可

ele.send_keys(file_path)

插件上传:一般指Flash、Javascript、Ajax等技术实现上传功能

pass

14.下载文件

pass

15.窗口截图

driver.save_screenshot(file_path)

16.关闭窗口

关闭当前窗口

driver.close()

关闭浏览器

driver.quit()

selenium-常用操作总结的更多相关文章

  1. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  2. selenium 常用操作

    官方文档: https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver. ...

  3. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  4. Selenium常用操作汇总二——如何操作cookies(转)

    Web 测试中我们经常会接触到Cookies,一个Cookies主要属性有”所在域.name.value.有效日期和路径",下面来讲一下怎么操作Cookies. import java.ut ...

  5. Selenium常用操作汇总二——如何处理alert、confirm、prompt对话框

    alert.confirm.prompt这样的js对话框在selenium1.X时代也是难啃的骨头,常常要用autoit来帮助处理. 试用了一下selenium webdriver中处理这些对话框十分 ...

  6. selenium常用操作学习笔记

    一,弹窗处理(推荐文章:https://blog.csdn.net/huilan_same/article/details/52298460) selenium提供switch_to方法定位弹窗的对话 ...

  7. selenium常用操作

    1.访问页面获得源码 browser.get(url) browser.page_source 2.查找单个元素:返回一个标签 find_element_by_id  ==>id选择器 find ...

  8. Selenium常用操作汇总二——如何把一个元素拖放到另一个元素里面(转)

    Q群里有时候会有人问,selenium  webdriver怎么实现把一个元素拖放到另一个元素里面.这一节总一下元素的拖放. 下面这个页面是一个演示拖放元素的页面,你可以把左右页面中的条目拖放到右边的 ...

  9. Selenium常用操作汇总二——如何得到弹出窗口

    在selenium 1.X里面得到弹出窗口是一件比较麻烦的事,特别是新开窗口没有id.name的时候.当时还整理了处理了几种方法,详见:http://seleniumcn.cn/read.php?ti ...

  10. Selenium常用操作汇总二——iframe的处理

    有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题.这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一.如果你在一 ...

随机推荐

  1. 多测师讲解接口测试 _理论基础知识001_高级讲师肖sir

    前言: 我们今天进入接口测试的学习! 今天学习的内容是偏向理论 接口理论 了解接口测试(1) 一.什么是接口测试? 接口统称api,即程序与程序之间的对接.交接.交互.是测试系统组件间接口的一种测试. ...

  2. 多测师讲解接口测试 _linux中搭建环境cms_高级讲师肖sir

    cms后台的搭建, 我们主要是用来做接口测试和接口自动化测试: 我们搭建的流程和之前搭建多有米一样: 后期给我们一个war包就要知道搭建一个文档: 要知道环境项目怎么讲?   讲解下搭建cms环境的流 ...

  3. MeteoInfoLab脚本示例:计算温度平流

    需要温度和风场U/V分量格点数据,计算中主要用到cdiff函数,结果用GrADS验证一致.脚本程序: print 'Open data files...' f_air = addfile('D:/Te ...

  4. Golang数组和切片的区别

    大纲 数组是固定大小 切片不是动态数组,可以扩容 区别 定义方式不一样 初始化方法不一样 package main import "fmt" func main() { // -- ...

  5. anaconda 取消每次默认启动base环境

    安装conda后取消命令行前出现的base,取消每次启动自动激活conda的基础环境 方法一: 每次在命令行通过conda deactivate退出base环境回到系统自动的环境 方法二 1,通过将a ...

  6. lumen 添加配置

    app同级目录新建config目录 添加配置文件 bootstrap/app.php里面加载 $app->configure('options');使用 $router->get('/', ...

  7. 一文读懂Redis常见对象类型的底层数据结构

    Redis是一个基于内存中的数据结构存储系统,可以用作数据库.缓存和消息中间件.Redis支持五种常见对象类型:字符串(String).哈希(Hash).列表(List).集合(Set)以及有序集合( ...

  8. MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨

    开心一刻 产品还没测试直接投入生产时,这尼玛... 背景问题 在讲 binlog 之前,我们先来回顾下主流关系型数据库的默认隔离级别,是默认隔离级别,不是事务有哪几种隔离级别,别会错题意了 1.Ora ...

  9. CUDA和cuDNN的安装

    CUDA软件 Windows 打开NVIDIA CUDA网站,选择需要下载的版本,依次选择Windows平台,x86_64架构,10系统,exe(local)本地安装包,再选择Download即可下载 ...

  10. 使用 Vim 搭建 Python 开发环境

    原文链接: https://spacevim.org/cn/use-vim-as-a-python-ide/ SpaceVim 是一个模块化的 Vim IDE,针对 Python 这一语言的支持主要依 ...