封装查找元素以及集成日志输出,Base模块
关于查找元素封装,Base模块
"""
Selenium 封装基类 封装查找元素以及集成日志输出
""" from HTMLReport import logger
from selenium import webdriver
from selenium.webdriver.remote.webelement import WebElement class Base(object):
def __init__(self, driver: webdriver.Remote = None):
self.driver = driver
self.logger = logger() def find_element(self, locator: tuple) -> WebElement:
"""查找单个元素 :param locator: 定位器(by=By.ID, value=None)
:return: WebElement
"""
self.logger.info(f"查找元素:{locator}")
try:
element = self.driver.find_element(*locator)
except Exception:
self.logger.info("查找元素失败")
raise
else:
self.logger.info("查找元素成功")
return element def find_elements(self, locator: tuple):
"""查找元素集合 :param locator: 定位器(by=By.ID, value=None)
:return: 元素对象集合
:rtype: list of WebElement
"""
self.logger.info(f"查找元素集合:{locator}")
elements = self.driver.find_elements(*locator)
self.logger.info(f"查找到{len(elements)}个元素")
return elements
封装查找元素以及集成日志输出,Base模块的更多相关文章
- Python日志输出——logging模块
Python日志输出——logging模块 标签: loggingpythonimportmodulelog4j 2012-03-06 00:18 31605人阅读 评论(8) 收藏 举报 分类: P ...
- 使用webdriverwait封装查找元素方法
对于selenium原生的查找元素方法进行封装,在timeout规定时间内循环查找页面上有没有某个元素 这样封装的好处: 1.可以有效提高查找元素的效率,避免元素还没加载完就抛异常 2.相对于time ...
- Python模块:日志输出—logging模块
1. logging介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/ ...
- ELK实战(Springboot日志输出查找)
需求 把分布式系统,集群日志集中处理快速查询 搭建ELK并与springboot日志输出结合 搭建ELK 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进 ...
- C++笔记(7)——一些模拟题:简单模拟、查找元素、图形输出、日期处理、进制转换、字符串处理
以下内容基本来自<算法笔记>,作者为胡凡,建议直接买书看,我这里只是摘抄部分当笔记,不完整的. 简单模拟 就是一类"题目怎么说你就怎么做"的题目.这类题目不涉及算法,只 ...
- .NET Core集成CorrelationId实现全链路日志输出
.NET Core集成CorrelationId实现全链路日志输出 一,链路追踪 随着微服务架构的流行,一次请求会涉及多个服务的调用,并且服务本身也可能会依赖其他服务,整个请求路径会构成一个调用链,当 ...
- springboot 学习之路 4(日志输出)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- logback配置日志输出
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> & ...
- Java学习笔记 DbUtils数据库查询和log4j日志输出 使用
DbUtils使用 QueryRunner DbUtils中定义了一个数据库操作类QueryRunner,所有的数据库操作CRUD都是通过此类来完成. 此类是线程安全的 方法名 对应sql语句 exc ...
随机推荐
- cgo在mac上编译
用了cgo mac上编译不过的可以试试下面的方法 ../../pkg/mod/github.com/mattn/go-sqlite3@v1.:: fatal error: 'stdlib.h' fil ...
- Google Admob移动广告快速集成步骤
Google Admob移动广告快速集成步骤 第一步:引入依赖包 //admob广告 implementation 'com.google.android.gms:play-services-ads: ...
- 26-限制容器对CPU的使用
默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制. Docker 可以通过 -c 或 --cpu-shares 设置容器使用 CPU 的权重.如果不指定,默认值为 1024. 与 ...
- nvidia quadro m5000 驱动安装 - 1804 ubuntu; nvidia-smi topo --matrix 查看gpu拓扑;nvidia-smi命令使用;
查看GPU型号: lspci | grep -i nvidia 驱动安装: https://www.nvidia.cn/Download/index.aspx?lang=cn 下载对应版本的驱动驱动程 ...
- June 30th, 2019. Week 26th, Sunday
It's so easy to be careless, it takes courage and courage to care. 不在乎很容易,但在乎却需要很多勇气. Sometimes it w ...
- AcWing 46. 二叉搜索树的后序遍历序列
地址 https://www.acwing.com/solution/acwing/content/3959/ 题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果. 如果是则返回t ...
- HTML网页自动跳转(重定向)
HTML网页自动跳转(重定向) meta <head> <meta http-equiv="refresh" content="5;url=https: ...
- Go 字符串 (string)
字符串类型为 string,使用双引号或者反引号包起来 字符串形式 反引号 当使用反引号时不会对字符串进行转义,并可以包含多行文本 示例: package main import "fmt& ...
- 【洛谷5363】[SDOI2019] 移动金币(动态规划)
点此看题面 大致题意: 有\(n\)个格子,让你摆放\(m\)个金币.二人博弈,每次选择一个金币向左移任意格,无法移动者输.问有多少种方案使先手必胜. 阶梯\(Nim\) 阶梯\(Nim\)的基本模型 ...
- 模块基础实战之ATM和购物车系统分文件处理
目录 一.项目地址 二.功能需求 一.项目地址 https://github.com/nickchen121/atm 二.功能需求 FUNC_MSG = { '0': '注销', '1': '登录', ...