web自动化
python+selenium+pytest
往前冲的小老虎
--记录自己学习和了解的东西,欢迎探讨交流
展开
-
PageObjects演练
PO模式:分层思想from selenium import webdriverfrom selenium.webdriver.remote.webdriver import WebDriverclass BasePage: _base_url = '' def __init__(self, driver: WebDriver = None): # 初始化 driver: webdriver python中的标记,标识符 ->bool :反馈类型为布尔值原创 2021-10-20 21:02:37 · 85 阅读 · 0 评论 -
文件上传弹框处理
文件上传文件上传 input标签直接使用sendkeysfrom time import sleepfrom selenium_webui.selenium_js.base import Base# input框可以直接用sendkeysclass TestFile(Base): def test_file(self): self.driver.get('https://image.baidu.com/') self.driver.find_el.原创 2021-10-19 21:32:20 · 406 阅读 · 0 评论 -
selenium执行js脚本
直接使用js操作页面,能解决很多click()不失效的问题页面滚动到底部,顶部处理富文本,时间控件的输入js定位元素,滚动execute_script 执行jsreturn 可以返回js的返回结果from time import sleepfrom selenium_webui.selenium_js.base import Baseclass TestJS(Base): def test_js_scroll(self): self.driver.get(原创 2021-10-19 21:20:34 · 121 阅读 · 0 评论 -
selenium多浏览器处理
from selenium import webdriverimport osclass Base: def setup(self): browser = os.getenv('browser') if browser == 'firefox': self.driver = webdriver.Firefox() elif browser == 'headless': self.driver =原创 2021-10-19 20:54:36 · 94 阅读 · 0 评论 -
WEB控件定位
from selenium import webdriverfrom selenium.webdriver.common.by import Byclass TestWait: def setup(self): self.driver = webdriver.Chrome() self.driver.get('https://www.baidu.com/') def teardown(self): self.driver.q...原创 2021-10-19 20:38:55 · 69 阅读 · 0 评论 -
多窗口处理与网页frame
selenium处理多窗口场景多个窗口识别多个窗口之间切换获取窗口的唯一标识用句柄表示,所以只需要切换句柄,就可以在多个窗口下切换1,获取当前的窗口句柄 driver.current_window_handle2,获取所有的窗口句柄 driver.window_handles3,切换窗口 driver.switch_to_window 加索引值from time import sleepfrom selenium_webui.selenium_iframe_windows.base i.原创 2021-10-19 20:14:49 · 123 阅读 · 0 评论 -
WEB控件的交互进阶
常见的操作事件:右键点击,页面滑动,表单操作ActionChains :执行PC端的鼠标点击,双击,右键,拖拽等动作TouchActions:模拟PC端和移动端的点击,滑动,拖拽,多点触控等多种手势的操作动作链接ActionChains执行原理:调用ActionChains的方法时,不会立即执行,而是将所有的操作,按照顺序存放在一个队列里,当调用perform()方法时,队列中的时间才会一次执行基本用法action = ActionChains(driver)生成一个动作action.方法原创 2021-10-19 18:10:25 · 125 阅读 · 0 评论 -
selenium 三种等待方式
sleep 线性等待 (强制等待)implicitly_wait 隐式等待:全局等待,自动轮询查找(默认0.5秒)WebDriverWait 显式等待:针对某个具体操作的元素,结合 until 和until not使用import timefrom selenium import webdriverfrom selenium.webdriver.common import byfrom selenium.webdriver.common.by import Byfrom selenium.原创 2021-10-18 22:11:20 · 139 阅读 · 0 评论 -
selenium用例编写(简单脚本)
import time # 导入时间模块from selenium import webdriver # 导入webdriver模块from time import sleep # 导入sleepclass TestCSDN: def setup(self): # setup函数会在每个testcase执行前先跑一遍,初始化环境 self.driver = webdriver.Chrome() # 浏览器驱动 self.driver.maxi原创 2021-10-18 21:44:12 · 253 阅读 · 0 评论 -
selenium IDE 使用
selenium IDE的下载,安装,启动,使用#selenium IDE 的下载Chrome插件链接:https://www.extfans.com/web-development/mooikfkahbdckldjjndioackbalphokd/谷歌浏览器插件下载安装#selenium IDE 启动原创 2021-10-18 21:15:08 · 63 阅读 · 0 评论 -
selenium的安装
#目录##selenium简介##selenium安装##driver配置###selenium简介selenium支持web浏览器的自动化,主要由三个工具构成:webdriver,ide,gridwebdriver使用浏览器提供的api来控制浏览器,模拟用户的操作ide是扩展插件,录制用户在浏览器的操作grid主要是用于分布式,多个浏览器进行操作客户端使用python等语言,编写selenium脚本将脚本传送给selenium服务器,服务器通过浏览器驱动不同的浏览器使用不同的dr原创 2021-10-18 20:33:21 · 124 阅读 · 0 评论