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

网站开发安全需求建网站一般多少钱

网站开发安全需求,建网站一般多少钱,拔别人的网站做网站合法吗,有了域名和主机怎么做网站目录#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.zqtcl.cn/news/49183/

相关文章:

  • 肇庆建设工程备案的网站润商网站建设服务
  • 网站开发团队配置旧金山网站建设
  • 域名大全百家号优化上首页
  • 襄樊网站建设公司石家庄做网站时光
  • 二手网站建设重庆搜索引擎推广
  • 做内网网站邢台做网站推广的公司
  • 交通建设集团网站做网站制作外包
  • 网站制作 流程新发地网站建设
  • 如何增加网站权重企业网站分析报告
  • 网站设计框架郑州哪些公司做网站建设
  • 中山网站建设制作 超凡科技开封网站推广公司
  • 广州网站建设联享科技国外网站都不能上怎么做跨境电商
  • 天津建设工程评标专家网站该网站暂时无法访问404
  • 昭通网站开发淮北论坛租房信息
  • 仓储服务 东莞网站建设 技术支持运营推广怎么学
  • 企业网站seo推广wordpress最新文章列表插件
  • 如何把jQuery特效做网站背景新华路网站建设
  • 深圳的网站建设公司三把火asp网站开发实例pdf
  • 做投资类网站服务器wordpress微信内发链接显示简介
  • 深圳网站做的好的公司名称什么是响应网站设计
  • 网站建设新闻发布大型网站开发的书
  • 状元村建设官方网站网站模板下载之后怎么做
  • 太原网站制作推广最近韩国电影片免费韩国在线观看
  • 建设路小学家校互动平台网站齐鲁人才网泰安
  • 大连工程建设信息网站网站建设文献综述范文
  • 商业网站建设案例上海市建设咨询协会网站
  • 绍兴网站制作实时排名软件
  • 网站被入侵后需做的检测(1)设计师网站pintset
  • 嘉兴 网站制作手机网站管理软件
  • 如何改变网站的排版搜索引擎大全网址