selenium_学习笔记——二次封装常用的方法
# coding = utf-8
'''
二次封装元素方法
加入循环查找方法,提高查找元素的稳定性
'''
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait class Base():
def __init__(self, driver):
# self.driver = webdriver.Firefox()
self.driver = driver
# 查找元素的过程封装了循环查找
def find_element(self, locator):
element = WebDriverWait(self.driver, 30).until(lambda x: x.find_element(*locator))
return element def send_keys(self, locator, text):
self.find_element(locator).send_keys(text) def click(self, locator):
self.find_element(locator).click() if __name__ == "__main__":
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
mydriver = Base(driver)
# 元组
# ID = "id"
# XPATH = "xpath"
# LINK_TEXT = "link text"
# PARTIAL_LINK_TEXT = "partial link text"
# NAME = "name"
# TAG_NAME = "tag name"
# CLASS_NAME = "class name"
# CSS_SELECTOR = "css selector"
inp_loc = ("id", "kw")
# mydriver.find_element(inp_loc)
mydriver.send_keys(inp_loc, "bai")
but_loc = ("id", "su")
mydriver.click(but_loc)
优势:可以使代码更稳定、封装了循环查找的方法
selenium_学习笔记——二次封装常用的方法的更多相关文章
- CMake学习笔记二:cmake 常用变量和常用环境变量
1 cmake 变量引用的方式 使用 ${} 进行变量的引用.在 IF 等语句中,是直接使用变量名而不通过 ${} 取值. 2 cmake 自定义变量的方式 主要有隐式定义和显式定义两种,举一个隐式定 ...
- Docker学习笔记二:Docker常用命令及提升拉取镜像的速度
一.Docker命令: 1.docker images //命令用来查看docker中所包含的镜像信息 2.docker ps -a //命令用来查看docker中所包含所有容器信息(运行状 ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- amazeui学习笔记二(进阶开发2)--Web组件简介Web Component
amazeui学习笔记二(进阶开发2)--Web组件简介Web Component 一.总结 1.amaze ui:amaze ui是一个web 组件, 由模板(hbs).样式(LESS).交互(JS ...
- amazeui学习笔记二(进阶开发1)--项目结构structure
amazeui学习笔记二(进阶开发1)--项目结构structure 一.总结 1.项目结构:是说的amazeui在github上面的项目结构,二次开发amazeui用 二.项目结构structure ...
- JDBC学习笔记二
JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...
- MongoDB学习笔记二- Mongoose
MongoDB学习笔记二 Mongoose Mongoose 简介 之前我们都是通过shell来完成对数据库的各种操作, 在开发中大部分时候我们都需要通过程序来完成对数据库的操作 而Mongoose就 ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计
源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...
随机推荐
- WinRM服务远程命令执行
WinRM服务简介 WinRM是WindowsRemoteManagementd(win远程管理)的简称.基于Web服务管理(WS-Management)标准,使用80端口或者443端口.这样一来,我 ...
- Redis的一些攻击手法整理
Redis基础 1 Redis基础 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开 ...
- workerman搭建聊天室
首先,先打开官网手册 http://doc.workerman.net/ 根据手册里安装里的提示,完成环境检测,和安装对应的扩展,并把对应的WorkerMan代码包下载解压至根目录 在根目录下创建 ...
- BUUCTF 不一样的flag writeup
感谢BUUCTF提供的学习平台 https://buuoj.cn 题目:不一样的flag 工具:x64dbg 这是一道内存的迷宫题,迷宫是402000处的字符串 根据经验,这应该(a行*b列)的字符, ...
- Boom 3D支持的音乐都有什么格式
Boom 3D作为一款专业的3D环绕音效软件,支持多种音频.视频播放格式,除了常用的MP3.WMA.WAV音频格式外,Boom 3D还支持FLAC.AAC这些比较高级的音频格式.同时,Boom 3D还 ...
- iOS UITextFeild获取高亮部分的长度
获取原因: 中英文混输时,会遇到长度统计不准的问题. 获取方法: NSString *toBeString = textField.text; NSString *lang = [[UITextInp ...
- CollectionUtils和StringUtils
1.StringUtils(常用-用来操作String的字符串)1.1 判断某字符串是否为空isEmpty StringUtils.isEmpty(null) = true StringUtils.i ...
- JQuery案例:购物车加减
购物车加减 <head> <meta charset="UTF-8"> <title>加减购物车</title> <style ...
- Linux的硬盘挂载
一·前言 我朋友买了一个香港的服务器,可用总容量为60G,实际只有15.4G,剩下的容量需要硬盘挂载.他尝试无果,向我求助.我帮他解决了问题,想回顾一下整理写此随笔. 二·运行环境 Linux系统版本 ...
- Beta冲刺随笔——Day_One
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 团队进行Beta冲刺 作业正文 正文 其他参考文献 无 今日事今日毕 林涛: ...