4个类+常用的46个方法

从以下知识内容对selenium 3自动化框架进行初步学习:

1.安装selenium

pip install selenium

pip list

2.驱动、关闭浏览器

首先需要下载浏览器的.exe驱动软件,解压后放在python路径里的Scripts里面,不同浏览器对应驱动不同,应注意版本的对应。由于火狐版本一直没纠正对,所以后来选择了Chrome。

驱动浏览器:

from selenium import WebDriver

d=webdriver.Chrome()

d.get('http://baidu.com')

关闭单个窗口:close()方法

关闭所有窗口:quit()方法

3.selenium 8种元素定位

id、name、class_name、tag_name(标签)、link_text、partial_link_text、xpath、css_selector

对应方法: find_element_by_XX()方法

如需定位一组元素只需改为:find_elements_by_XX()

4.控制浏览器操作

窗口大小:set_window_size(宽,高)方法、maximize_window()方法

前进、后退:通过url地址调用,forward()方法与back()方法

刷新页面:refresh()方法

点击和输入:

清除文本:clear()方法

模拟按键输入:send_keys(value)方法

点击元素/提交元素:click()方法/submint()方法

获取元素尺寸:size()方法

获取元素文本:text()方法

获得属性值:get_attribute(name)方法

设置元素是否用户可见:is_displayed()方法

5. 鼠标键盘 ActionChains类 与Keys()类

ActionChains()类中包含了鼠标操作的常用方法:

使用前先导入:from selenium.webdriver.common.action_chains import ActionChains

右击:context_click()方法

双击:double_click()方法

拖动:drag_and_drop()方法

鼠标悬停:move_to_element()

执行所有ActionChains中存储的行为:perform()方法,也可以理解为,对整个操作的提交动作。

Keys()类提供了键盘上几乎所有的按键方法:

使用前先导入:from selenium.webdriver.common.keys import Keys

模拟键盘输入:send_keys()方法  #也用作文件上传

删除键:send_keys(Keys.BACK_SPACE)

空格键:send_keys(Keys.SPACE)

......

6.用来对比结果与预期的几个方法

获得当前页面的标题:title

用户获得当前页面的URL:current_url

获取搜索条目的文本信息:text

7.三大等待:WebDriverWait(驱动,时常,间隔,报错)类 与 implicitly_wait(时间)方法、sleep(时间)方法

分别对应显式等待(等元素)、隐式等待(等页面)、强制等待(等时间)

使用前需分别导入:

from selenium.webdriver.support.ui import WebDriverWait

import time

from time import sleep

8.切换操作:switch_to.XX()方法 需加强练习

多表单切换:switch_to_frame()方法 #注意动态ID的处理

多窗口切换:switch_to_window()方法

警告框处理:switch_to_alert()方法 类似还有,switch_to_confiem(),switch_to_prompt()

其后可跟,返回:text方法

接受现有警告框:accept()方法 eg: driver.switch_to_alert.accept() #方法后可根方法

解散现有框架:dismiss()

发送文本至警告框:send_key(keysToSend) #keysToSend将文本发送至警告框

9.处理下拉框 Select()类

Select类用于定位select标签,select_by_value() 方法用于定位下接选项中的value值。

使用前需导入:from selenium.webdriver.support.select import Select

10.cookie操作

获得所有cookie信息:get_cookies()方法

获得字典key值为“name”的cookie信息:get_cookie(name)方法

添加cookie:add_cookie(cookie_dict)方法 #“cookie_dict”指字典对象,必须有name 和value 值。

删除所有cookie信息:delete_all_cookies()

删除cookie信息:delete_cookie(name,optionsString) #“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。

11 杂

调用JavaScript代码:execute_script()方法

窗口截图:get_screenshot_as_file()方法

留个python基本功不扎实的问题,为什么有的方法后面带括号,有的不带呢?

Selenium 3 学习小结的更多相关文章

  1. selenium webdriver学习(二)————对浏览器的简单操作(转载JARVI)

    selenium webdriver学习(二)————对浏览器的简单操作 博客分类: Selenium-webdriver   selenium webdriver对浏览器的简单操作 打开一个测试浏览 ...

  2. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  5. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  6. Selenium Grid 学习笔记

    Selenium Grid 学习笔记http://www.docin.com/p-765680298.html

  7. pthread多线程编程的学习小结

    pthread多线程编程的学习小结  pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写     程序员必上的开发者服务平台 —— DevSt ...

  8. Selenium webdriver 学习总结-元素定位

    Selenium webdriver 学习总结-元素定位 webdriver提供了丰富的API,有多种定位策略:id,name,css选择器,xpath等,其中css选择器定位元素效率相比xpath要 ...

  9. ExtJs学习笔记之学习小结LoginDemo

    ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

随机推荐

  1. NightWatch端到端测试

    NightWatch http://nightwatchjs.org/ Nightwatch.js Browser automated testing done easy. Write End-to- ...

  2. 2.10 while循环应用

    while循环应用 1. 计算1~100的累积和(包含1和100) 参考代码如下: #encoding=utf-8 i = 1 sum = 0 while i <= 100: sum = sum ...

  3. https协议的简单理解

    本片文章梳理三个知识点: 1.对称加密和非对称加密的区别 2.https协议的请求流程 3.http协议和https协议的区别 一.对称加密和非对称加密 对称加密:加密和解密使用同一密钥. 非对称加密 ...

  4. Windows下VSCode编译调试c/c++

    参考链接:  https://blog.csdn.net/c_duoduo/article/details/51615381 支持makefile编译: https://www.cnblogs.com ...

  5. C++设计模式——中介者模式

    前言 我们都知道,这个国际政治是一门很深的学问,不玩政治的人是搞不懂的.那么多的国家,国家之间的关系又及其复杂:就好比现在,美国和中国有经济利益关系,美国又和日本有盟友关系,朝鲜又和中国有说不清道不明 ...

  6. CKEditor5 + vue2.0 自定义图片上传、highlight、字体等用法

    因业务需求,要在 vue2.0 的项目里使用富文本编辑器,经过调研多个编辑器,CKEditor5 支持 vue,遂采用.因 CKEditor5 文档比较少,此处记录下引用和一些基本用法. CKEdit ...

  7. ubuntu 16.04 安装 kubelet、kubeadm 和 kubectl

    解决了***之后,就开始K8S安装的正式旅程,本次记录  kubelet.kubeadm 和 kubectl 的安装: apt-get update && apt-get instal ...

  8. 【原创】大叔问题定位分享(9)oozie提交spark任务报 java.lang.NoClassDefFoundError: org/apache/kafka/clients/producer/KafkaProducer

    oozie中支持很多的action类型,比如spark.hive,对应的标签为: <spark xmlns="uri:oozie:spark-action:0.1"> ...

  9. windows上安装gcc/g++环境(MinGW,msys64等)

    1 前言 经过折腾安装gcc环境,记录一下 2 工具  MinGW安装器: 下载地址1:MinGW官网 下载地址2:SourceForge (MinGW w64) 下载地址3:win-builds-1 ...

  10. POJ 3104 Drying

    最让HSQ学长头疼的就是洗衣服了.洗完之后,每件衣服都有一定单位水分,在不使用烘干器的情况下,每件衣服每分钟自然流失1个单位水分,但如果使用了烘干机则每分钟流失K个单位水分.令人遗憾是HSQ所在的宿舍 ...