当前位置: 首页 > news >正文

深圳沙井做公司网站机械工业第六设计研究院有限公司

深圳沙井做公司网站,机械工业第六设计研究院有限公司,h5页面怎么做,重庆市城市建设规划官方网站目录#xff1a; selenium多浏览器处理执行 javascript 脚本headless无头浏览器使用capability配置参数解析企业微信实战cypress测试框架介绍Playwright测试框架介绍 1.selenium多浏览器处理 多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何…目录 selenium多浏览器处理执行 javascript 脚本headless无头浏览器使用capability配置参数解析企业微信实战cypress测试框架介绍Playwright测试框架介绍 1.selenium多浏览器处理 多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何浏览器上正常的工作这样能吸引更多的用户来使用 多浏览器测试概述 是跨不同浏览器组合验证网站或 web 应用程序功能的过程是兼容性测试的一个分支用于保持功能和质量的一致性适用于面向客户的网站和组织内部使用的站点 多浏览器的实现方案 pytest hook 函数 pytest_addoption 添加命令行参数组/命令行参数pytest_configure 解析命令行选项每个插件都会用到这个hook函数 pytest_addoption 与 pytest_configure pytest_addoption parser.getgroup 创建/获取组名addoption 添加一个命令行选项pytest_configure: 通过config 对象的getoption()方法获取命令行参数将命令行获取到的内容赋值给变量 代码示例 def pytest_addoption(parser: Parser):hdc parser.getgroup(hdc)hdc.addoption(--browser) 运行结果 代码示例 conftest.py from _pytest.config.argparsing import Parserdef pytest_collection_modifyitems(session, config, items: list):print(items)for item in items:item.name item.name.encode(utf-8).decode(unicode-escape)item._nodeid item.nodeid.encode(utf-8).decode(unicode-escape)def pytest_addoption(parser:Parser):# group 将下面所有的 option都展示在这个group下。mygroup parser.getgroup(hdc)# 注册一个命令行选项mygroup.addoption(--browser,# 参数的默认值defaultChrome,# 存储的变量(起别名)destwo_shi_bie_ming,# 参数的描述信息helpset your browser,such asChrome, Firefox, Headless...)global_env {}def pytest_configure(config):#使用别名browser config.getoption(wo_shi_bie_ming, defaultChrome)# browser config.getoption(--browser, defaultChrome)print(f通过命令行获取的浏览器为{browser})tmp {browser: browser}global_env.update(tmp) test_demo.py import time from selenium import webdriver from web_automation_testing.test_multi_brower.conftest import global_envclass TestSearch:def setup_class(self):self.browser global_env.get(browser)if self.browser firefox:self.driver webdriver.Firefox()else:self.driver webdriver.Chrome()self.driver.maximize_window()self.driver.implicitly_wait(3)def teardown_class(self):self.driver.quit()def test_get(self):self.driver.get(https://www.baidu.com/)time.sleep(2)assert True运行结果 2.执行 javascript 脚本 JavaScript简介 JavaScript 是一种具有函数优先的轻量级解释型或即时编译型的编程语言可以嵌入到HTML页面对浏览器事件做出响应也可以基于Node.js技术进行服务器端编程 自动化测试中使用JavaScript脚本 使用场景部分场景使用selenium原生方法无法解决 修改时间控件滚动到某个元素其他场景 JavaScript 使用思路 页面调试 js 脚本Selenium执行js JavaScript调试方法 进入 console 调试js 脚本如果有返回值则会在浏览器返回 JS 脚本-元素操作 通过 css 查找元素 点击元素对应clickinput标签对应的值(对应send_keys)元素的类属性元素的文本属性 // 百度首页https://www.baidu.com/ // 修改属性值 document.querySelector(#kw).value 邯郸学院 // 点击操作 document.querySelector(#su).click()// 淘宝首页 https://www.taobao.com/ // 修改元素的类属性 document.querySelector(#J_SiteNavMytaobao).className site-nav-menu site-nav-mytaobao site-nav-multi-menu J_MultiMenu site-nav-menu-hover// 测试人首页https://ceshiren.com/ // 获取元素内的文本信息 document.querySelector(#ember63).innerText JS脚本滚动操作 页面滚动到底部指定到滚动的位置 document.documentElement.scrollTop10000 document.querySelector(css表达式).scrollIntoView(); Selenium执行js Selenium执行js 调用执行js方法在 js 语句中添加 return代码可以获取js的执行结果结合 find_element 方法 代码示例 from time import sleep from selenium import webdriver from selenium.webdriver.common.by import Bydef test_select_down():driver webdriver.Chrome()driver.implicitly_wait(3)driver.maximize_window()# 打开网址driver.get(https://www.taobao.com/)# 修改下拉框属性sleep(1)driver.execute_script(document.querySelector(#J_SiteNavMytaobao).classNamesite-nav-menu site-nav-mytaobao site-nav-multi-menu J_MultiMenu site-nav-menu-hover)driver.find_element(By.XPATH, //*[text()已买到的宝贝]).click()sleep(5)driver.quit()def test_data_time():# 打开网址driver webdriver.Chrome()driver.implicitly_wait(3)driver.maximize_window()driver.get(https://www.12306.cn/index/)sleep(1)# 修改出发日期driver.execute_script(document.querySelector(#train_date).value2022-12-22)sleep(1)# 打印出发日期 返回值的使用train_data driver.execute_script(return document.querySelector(#train_date).value)print(train_data)sleep(3)3.headless无头浏览器使用 是一个配置浏览器启动的选项类用于自定义和配置Driver会话常见使用场景 设置无头模式:不会显示调用浏览器避免人为干扰的问题。设置调试模式:调试自动化测试代码浏览器复用https://sites.google.com/a/chromium.org/chromedriver/capabilities 添加启动配置(arguments)-Python版本 无头模式 --headless窗体最大化 start-maximized指定浏览器分辨率 window-size1920x3000 from selenium import webdriver from selenium.webdriver.common.by import Bydef test_chrome_pref():options webdriver.ChromeOptions()# 无头模式options.add_argument(--headless)# 窗体最大化options.add_argument(start-maximized)# 指定浏览器分辨率options.add_argument(window-size1920x3000)driver webdriver.Chrome(chrome_optionsoptions)# 打开测试人页面driver.get(https://ceshiren.com/)# 点击登录login_button_text driver.find_element(By.CSS_SELECTOR, .login-button).textprint(login_button_text)driver.quit()4.capability配置参数解析 capability概述 Capabilities是WebDriver支持的标准命令之外的扩展命令(配置信息)配置web驱动的属性如浏览器名称、浏览器平台等。结合Selenium Grid完成分布式、兼容性等测试官网地址 https://www.selenium.dev/zh-cn/documentation/webdriver/capabilities/shared/ Selenium Grid Selenium Grid 允许我们在多台机器上并行运行测试并集中管理不同的浏览器版本和浏览器配置而不是在每个单独的测试中。 官网地址https://www.selenium.dev/documentation/grid/ 演示环境https://selenium-node.hogwarts.ceshiren.com/ui# 保证本地可以正常调通实例化Remote()类并添加相应的配置 远程地址设备配置 代码示例 import time from selenium import webdriver from selenium.webdriver.common.by import Bydef test_capabilitie1():# 切换成 windows 就会报错capabilities {browserName:chrome,platformName:windows}# 通过 desired_capabilities 添加配置信息driver webdriver.Chrome(desired_capabilitiescapabilities)driver.implicitly_wait(5)driver.get(https://ceshiren.com/)text driver.find_element(By.CSS_SELECTOR, .login-button).textprint(text)time.sleep(30)driver.quit()def test_capabilitie2():hogwarts_grid_url https://selenium-node.hogwarts.ceshiren.com/wd/hubcapabilities {browserName:chrome,browserVersion:101.0}# 配置信息# 实例化Remote获取可以远程控制的driver实例对象# 通过 command_executor 配置selenium hub地址# 通过 desired_capabilities 添加配置信息driver webdriver.Remote(command_executorhogwarts_grid_url,desired_capabilitiescapabilities)driver.implicitly_wait(5)driver.get(https://ceshiren.com/)text driver.find_element(By.CSS_SELECTOR, .login-button).textprint(text)time.sleep(3)driver.quit() 5.企业微信实战 6.cypress测试框架介绍 cypress简介 基于 JavaScript 的前端测试工具可以对浏览器中运行的任何内容进行快速、简单、可靠的测试对每一步操作都支持回看覆盖了测试金字塔模型的所有测试类型【界面测试集成测试单元测试】底层协议不采用 WebDriver Cypress官网https://www.cypress.io/ cypress与selenium对比 项目CypressSelenium支持语言JavascriptJava, Python, Javascript, Ruby, C#等支持浏览器Chrome、Electron各种主流浏览器主要使用者前端开发人员QA使用的测试框架Mocha无限制是否需要浏览器驱动器否需要测试速度快略慢录制测试视频、快照支持支持但需要写代码社区支持略显薄弱强大 cypress环境部署 安装node.js 官网地址https://nodejs.org/zh-cn/安装cypress 初始化项目npm init配置淘宝镜像npm config set registry http://registry.npm.taobao.org安装cypressnpm install cypress --save-dev打开cypress npx cypress open cypress基本用法 describe 声明一个测试用例集合beforeEach 测试用例前置操作相当于setupit 声明一个测试用例cy.get 定位元素用css定位type 输入文本click 点击操作should 断言 使用vscode装一下插件  npm init npm install cypress –-save-dev 7.Playwright测试框架介绍 Playwright 简介 Playwright 官网https://playwright.dev/python/docs/introWeb 自动化测试框架。跨平台多语言支持。支持 Chromium、Firefox、WebKit 等主流浏览器自动化操作。 Playwright 的优点 支持所有流行的浏览器。速度更快更可靠的执行。更强大的自动化测试配置。强大的工具库Codegen、Playwright inspector、Trace Viewer。 Playwright 原理 Playwright 与 selenium 对比 项目PlaywrightSelenium是否需要驱动否需要对应浏览器 webdriver支持语言Java, Python, JavascriptJava, Python, Javascript, Ruby, C#等支持浏览器Chrome、Firefox 等Chrome、Firefox 等通讯方式websocket 双向通讯协议http 单向通讯协议使用的测试框架无限制(pytest,unittest)无限制(pytest,unittest)测试速度快慢录制测试视频、快照支持支持社区支持微软thoughtworks 公司 Playwright 核心工具 Codegen通过记录你的操作来生成测试。 将它们保存为任何语言。Playwright inspector 检查页面、生成选择器、逐步执行测试、查看点击点、探索执行日志。Trace Viewer捕获所有信息以调查测试失败。 Playwright 跟踪包含测试执行截屏、实时 DOM 快照、动作资源管理器、测试源等等。 Playwright 环境安装 安装 playwright 插件 pip install pytest-playwright安装所需的浏览器 playwright install 官网介绍https://playwright.dev/python/docs/intro Codegen # 设定展示窗口大小 playwright codegen --viewport-size800,600 地址 # 指定设备 playwright codegen --deviceiPhone 11 地址 其他参数https://playwright.dev/python/docs/codegen Codegen-保存登录状态 场景单点登录、验证码问题 # 保存登录状态 playwright codegen --save-storageauth.json # 加载认证信息 playwright codegen --load-storageauth.json 地址 Playwright 常用API  Actions | Playwright Python 常用API含义start()实例化playwrightchromium().launch()打开chrome浏览器new_page()打开一个窗口页面page.goto()跳转到某个地址page.locator(““)定位某个元素click()点击元素fill()输入内容keyboard().down()键盘事件screenshot()截图操作 Playwright 使用实例 from playwright.sync_api import sync_playwright, expectdef test_playwright():# 实例化playwrightplaywright sync_playwright().start()# 打开chrome浏览器,headless默认是True,无头模式,这里设置为False方便查看效果browser playwright.chromium.launch(headlessFalse)# 打开一个窗口页面page browser.new_page()# 在当前窗口页面打开测试人网站page.goto(https://ceshiren.com/)# 定位搜索按钮并点击page.locator(#search-button).click()# 定位搜索框并输入web自动化page.locator(#search-term).fill(web自动化)# 使用keyboard.down模拟键盘的enter事件page.keyboard.down(Enter)# 断言搜索结果result page.locator(.listli:nth-child(1) .topic-titlespan)expect(result).to_contain_text(自动化)# 截图page.screenshot(path./datas/screenshot/screenshot.png)# 用例完成后先关闭浏览器browser.close()# 然后关闭playwright服务playwright.stop()Trace Viewer 简介 Trace viewer | Playwright Python Trace Viewer 使用 from playwright.sync_api import sync_playwright, expectdef test_playwirght_trace():# 实例化一个playwright对象playwright sync_playwright().start()# 启动谷歌浏览器模式使用无头模式browser playwright.chromium.launch(headlessFalse)# trace 的配置# 1. 生成 一个 context 实例context browser.new_context()# 2. 添加 trace 的配置信息context.tracing.start(screenshotsTrue, snapshotsTrue, sourcesTrue)# 3. 使用填加了trace 配置的 context 实例去实例化一个page对象page context.new_page()# 跳转到ceshiren页面page.goto(https://ceshiren.com/)# 点击搜索按钮 输入css定位page.locator(#search-button).click()# 输入搜索的内容 输入css定位page.locator(#search-term).fill(appium)# 按下回车键page.keyboard.down(Enter)# time.sleep(3)result page.locator(.results .item:nth-child(1) .topic-title)expect(result).to_contain_text(appium)# 4. 在关闭浏览器之前一定要结束tracecontext.tracing.stop(path./datas/playwirght_trace.zip)browser.close()# 打开trace  playwright show-trace trace.zip
http://www.tj-hxxt.cn/news/234240.html

相关文章:

  • 毕业设计网站设计步骤网站备案核验单怎么选
  • 外汇网站源码 asp唐山正规做网站的公司
  • 可以免费秒玩游戏的网站wordpress子主题插件
  • 焦作做网站推广无忧网站建设推荐
  • 网站备案接入服务单位校园生活网页设计
  • 备案注销网站还有吗互联网公司的招聘信息
  • 烟台网站设计公司平面设计和网页设计
  • 购物网站建设市场四川网站seo
  • 游戏网站做关键字如何在网站中做公示信息
  • 泰州网站建设解决方案wordpress中文主题下载地址
  • 做h的动漫在线观看网站南通网站建设南通
  • 打开建设银行官方网站首页电脑上买wordpress
  • 明星网页网站制作舜江建设集团官方网站
  • 四川移动网站建设产品网络营销推广方案
  • 微信公众号免费制作成微网站投票小程序制作
  • 贷款 东莞网站建设做网站毕业设计存在的问题
  • 无锡市住房与城乡建设局网站最火爆的视频制作app
  • 广州市官网网站建设报价本网站只做信息展示不提供在线交易
  • 大气黑色女性时尚类网站织梦模板舟山建设网站
  • 大气网站源码下载高端大气的医院网站
  • 网站建设合同 域名用jsp做婚纱网站的流程
  • win7 asp网站无法显示该页面网站备案取消前置审批
  • 国土 住房与城乡建设部网站上传产品网站怎么做的
  • 网站租空间多少钱wordpress不用插件
  • 汝城网站建设学校网站建设管理制度
  • 青龙建站网重庆市建设工程安全管理协会
  • 企业网站建设方案投标书网站建设运营费用预算
  • 重庆企业网站的推广租房网站模板
  • 在菲律宾做网络网站犯法吗深圳企业电话黄页
  • 平潭县建设局网站logo设计在线生成免费u钙