Python3-Selenium自动化测试框架(二)之selenium使用和元素定位
时间:2020-01-09
本文章向大家介绍Python3-Selenium自动化测试框架(二)之selenium使用和元素定位,主要包括Python3-Selenium自动化测试框架(二)之selenium使用和元素定位使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Selenium自动化测试框架(二)之selenium使用和元素定位
(一)selenium的简单使用
1、导包
from selenium import webdriver
2、初始化浏览器
# 驱动在python环境中
browser = webdriver.Chrome()
# 驱动不放在python环境中,添加executable_path关键字
browser = webdriver.Chrome(executable_path=r"D:\chromedriver.exe")
3、打开网址
browser.get("http://www.baidu.com")
4、对浏览器的一些简单操作
# ------------------获取浏览器信息----------------
# 获取网址
browser.current_url
# 获取网页标题
browser.title
# 获取网页中的源码
browser.page_source
# 获取所有的窗口,所有的标签页(list类型)
browser.window_handles
# 获取现在正处于的标签页, 返回的是窗口句柄(窗口ID)
browser.current_window_handle
# ------------------浏览器动作--------------------
# 最大化窗口
browser.maximize_window()
# 最小化窗口
browser.minimize_window()
# 设置窗口的大小,参数为:长宽,单位:像素
browser.set_window_size(800, 600)
# 刷新
browser.refresh()
# 后退
browser.back()
# 前进
browser.forward()
5、关闭标签页和浏览器
# 关闭标签页
browser.close()
# 关闭浏览器
browser.quit()
(二)元素定位(百度为例)
- 在python中模拟点点点,实际上就是通过在 HTML 当中去找到需要操作的元素(标签)进行模拟操作
- find_element_by_...:返回的是一个WebElement对象,如果有多个值也只会返回第一个值
- find_elements_by_...:返回的是一个WebElement对象list列表,不管有多少个值都返回的列表(可以通过索引获取你需要的哪一个)
- send_keys("内容"):输入内容
- click():单击
- 在python中通过元素的特征进行查找元素,根据id属性查找(id具有唯一性)
注意点:
- id属性可能会是动态变化的。
- 如果id中包含数字,那么这个id属性你要小心了,很大可能是动态变化的。
- 像那种拼音单词之类的,一般情况下是不可变的id。
* 以下用的都是:find_element_by_...
1、根据ID属性进行定位,查询到的是一个WebElement对象
input_element = browser.find_element_by_id("kw")
print(input_element)
# 输入内容
input_element.send_keys("Python")
2、根据name属性进行定位
element = browser.find_element_by_name("wd")
print(element)
3、根据class属性进行定位
e = browser.find_element_by_class_name("s_ipt")
print(e)
4、通过tagname(标签名称)进行定位。查找到的元素不具备唯一性
e = browser.find_element_by_tag_name("a")
print(e)
5、定位a标签超链接
e = browser.find_element_by_link_text('新闻')
# 点击链接
e.click()
6、定位a标签超链接,模糊定位
e = browser.find_element_by_partial_link_text('新')
e.click()
7、xpath
8、css 选择器
【未完】
原文地址:https://www.cnblogs.com/desireyang/p/12124899.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- python中return不返回值的问题解析
- php装饰者模式简单应用案例分析
- php常用日期时间函数实例小结
- PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
- 基于laravel缓冲cache的用法详解
- Python使用sys.exc_info()方法获取异常信息
- laravel通用化的CURD的实现
- Laravel修改验证提示信息为中文的示例
- PHP+redis实现微博的推模型案例分析
- Laravel 解决composer相关操作提示php相关异常的问题
- laravel 实现根据字段不同值做不同查询
- php实现获取近几日、月时间示例
- PHP+redis实现微博的拉模型案例详解
- PHP实现微信申请退款功能
- Laravel+Intervention实现上传图片功能示例