Selenium 元素定位方式封装的实际应用
一、定位方式
二、实际应用
1、项目结构
2、locator_base.py 文件
# -*- coding: utf-8 -*-
from selenium.webdriver.common.by import By # 元素定位方式
def locator(driver, find, type, loc):
global element
find_dict = {"ele": driver.find_element, "eles": driver.find_elements} locator_dict = {
"id": By.ID,
"name": By.NAME,
"class": By.CLASS_NAME,
"tag": By.TAG_NAME,
"link": By.LINK_TEXT,
"partial_link": By.PARTIAL_LINK_TEXT,
"xpath": By.XPATH,
"css": By.CSS_SELECTOR
} if type in [key for key in locator_dict.keys()]:
element = find_dict[find](locator_dict[type], loc)
return element
else:
raise NameError("元素定位方式发生错误!") # send_keys()
def send(driver, find, type, loc, data):
try:
locator(driver, find, type, loc).send_keys(data)
print("【{0}】输入成功".format(data))
except:
print("输入失败") # click()
def click(driver, find, type, loc):
try:
locator(driver, find, type, loc).click()
print("点击成功")
except:
print("点击失败")
3、test_case.py 文件
# -*- coding: utf-8 -*-
from eleFZ.locator_base import locator, send, click
from selenium import webdriver
from time import sleep
import unittest class Test_yyds(unittest.TestCase):
"""测试Demo""" @classmethod
def setUpClass(self):
global driver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/") def test_a_input(self):
"""用例1"""
send(driver, "ele", "id", "kw", "保你平安")
click(driver, "ele", "id", "su")
sleep(3) @classmethod
def tearDownClass(cls) -> None:
driver.close() if __name__ == '__main__':
unittest.main()
Selenium 元素定位方式封装的实际应用的更多相关文章
- selenium元素定位方式xpath总结
一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...
- 一篇文章搞定Selenium元素定位/封装/数据驱动
小伙伴都知道,自动化最重的,又最"难"(因为实战中会碰到定位的各种坑)那就是定位元素.如果不熟练掌握定位,那只怕你比功能测式的小伙伴下班还会要晚!扎心了吧! Selenium常用定 ...
- 史上最全!Selenium元素定位的30种方式
Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下. 这里将统一使用百度 ...
- Java + Selenium + WebDriver八大元素定位方式
UI自动化测试的第一步就是进行元素定位,下面给大家介绍一下Selenium + WebDriver的八大元素定位方式.现在我们就以百度搜索框为例进行元素定位,如下图: 一.By.name() Java ...
- 【python+selenium的web自动化】- 8种元素定位方式详解
我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确地定位到唯一元素才能进行后续的自动化控制,下面将对各种元素定位方式进行总结归纳. 说明:以下操作统 ...
- 1、selenium 8大元素定位方式
元素定位方式: id name css class_name tag_name partial_link link_text : driver. find_element_by_link_text(& ...
- UI自动化学习笔记- Selenium元素定位及元素操作
一.元素定位 1. 如何进行元素定位? 元素定位就是通过元素的信息或元素层级结构来定位元素的 2.定位工具 浏览器开发者工具 3.元素定位方式 Selenium提供了八种定位元素方式 id name ...
- selenium的定位方式
1.selenium的定位方式 selenium有18种定位方式,8种单数,8种复数,2种父类 2.8种单数定位方式 from selenium import webdriverimport time ...
- Selenium3 + Python3自动化测试系列二——selenium元素定位
一.selenium元素定位 Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素 才能进行后续的自动化控制,我在这里将对selenium8种元 ...
- selenium元素定位之css选择器
在selenium元素定位时会用到css选择器选取元素,虽说xpath在定位元素时能解决大部分问题,但使用css选择器选取元素也是一种不错的选择. css相较与xpath选择元素优点如下: 表达式更加 ...
随机推荐
- centos 通过yum安装docker-ce报错
通过yum安装docker-ce报错,是因为本机安装过多次造成的,如下所示,需要解决掉冲突依赖,从新安装 1 从 https://mirrors.aliyun.com/docker-ce/linux/ ...
- 关于uni-app开发的微信小程序顶部导航条机型适配
背景: 小程序顶部导航栏那里的样式和功能都是小程序自带的,当我们在pages.json里的pages里新加一条页面配置时,会自动生成一个带顶部导航栏的空白页面,当然也可以再配置里"navig ...
- 使用JAX构建强化学习agent并借助TensorFlowLite将其部署到Android应用中
在之前发布文章<一个新 TensorFlow Lite 示例应用:棋盘游戏>中,展示了如何使用 TensorFlow 和 TensorFlow Agents 来训练强化学习 (RL) ag ...
- 关于npm audit fix无法修复问题的解决办法
这两天新建项目 使用npm install的时候一直出现这个错误,使用npm audit fix 无法修复. 查询解决办法: 可以使用淘宝镜像源,会自动修复,然后下载相关依赖包 解决方法如下: 1.使 ...
- Linux 截图快捷键 - 搬运
Linux 截图快捷键 转自:linux 截图快捷键 环境 Linux Mint 21.1 1. Prt ScSysRq ---->全屏截图2. Shift+Prt ScSysRq ----& ...
- TProtocolException: Required field 'type' is unset! Struct:TPrimitiveTypeEntry(type:null)
org.apache.thrift.protocol.TProtocolException: Required field 'type' is unset! Struct:TPrimitiveType ...
- 自动化兼容性测试工具——WeTest
这个作业属于哪个课程 2021春软件工程实践|W班(福州大学) 这个作业要求在哪里 软件工程实践总结&个人技术博客 这个作业的目标 分享自动化兼容性测试工具的使用 其他参考文献 ... 目录 ...
- AttributeError: module 'torch._six' has no attribute 'PY3'
修改:进到torch._six源码,看看里面是PY的哪个对象,修改成这对象名试试 _six.py 即将PY3修改为PY37
- 【打怪升级】【rocketMq】rocket的持久化
rocket持久化保证的思想有两点:1是刷盘保证大部分数据不丢失:2是持久化文件的处理,零拷贝技术和内存页,NIO模型保证处理能力 文件持久化目录 ├──abort:rocket broker启动检查 ...
- 马志强:语音识别技术研究进展和应用落地分享丨RTC Dev Meetup
本文内容源自「RTC Dev Meetup 丨语音处理在实时互动领域的技术实践和应用]的演讲分享,分享讲师为寰语科技语音识别研究主管马志强. 01 语音识别技术现状 1.语音成为万物互联时代人机交互关 ...