一、page_func.py

# coding=utf-8
"""@Project :playwright_test @File    :page_func.py@Author  :gaojs@Date    :2022/7/14 21:48@Blogs   : https://www.gaojs.com.cn
"""
import timeimport playwright
from playwright.sync_api import Playwright, sync_playwright, expect
from playwright.sync_api import sync_playwrightclass AMPTest:"""amp类"""def __init__(self):"""初始化参数"""self.playwright = sync_playwright().start()self.browser = self.playwright.chromium.launch(headless=False)self.context = self.browser.new_context()self.page = self.context.new_page()self.page.set_default_navigation_timeout(20000)async def async_browser(self):"""异步打开多个浏览器:return:"""async with async_playwright() as p:for browser_type in [p.chromium, p.firefox, p.webkit]:browser = await browser_type.launch(headless=False)page = await browser.new_page()await page.goto('www.baidu.com')# await browser.close()asyncio.get_event_loop().run_until_complete(async_browser())def gotourl(self, url):"""打开新页面:return:"""self.page.goto(url=url)self.page.wait_for_load_state(timeout=10)def wait_element_click(self, locator):"""等待点击:return:"""try:self.page.locator(locator).click()self.page.wait_for_load_state()except Exception as err:self.page.screenshot(path="./a.png")print(f'点击元素失败,请重试!错误信息是 {err}')def wait_element_input(self, locator, text):"""等待元素加载出来,输入text:return:"""try:self.page.locator(locator).fill(text)self.page.wait_for_load_state()except Exception as err:self.page.screenshot(path="./123.png")print(f'定位元素失败失败,请重新输入!错误信息是 {err}')def refresh(self):"""刷新页面:return:"""self.refresh()self.page.wait_for_load_state()def reload(self):"""重新加载页面:return:"""self.page.reload(timeout=20)self.page.wait_for_load_state()def closeCurrent(self):"""关闭当前页面:return:"""self.page.close()def title(self):"""等待title出现:return:"""self.page.title()def doubleClick(self, locator):"""双击:return:"""self.page.locator(locator).dblclick()def selectFrame(self, name):"""切换frame:return:"""self.page.frame(name=name)def waitConsoleMessage(self, predicate):"""等待界面出现:return:"""self.page.expect_console_message(predicate)def login(self):"""登录amp站点"""self.page.goto('https://www.gaojs.com.cn')# d等待页面右上角搜索按钮出现self.wait_element_click('#Joe > header > div.joe_header__above.topInDown.fixed > div > nav > a:nth-child(2)')time.sleep(5)page2 = self.context.new_page()page2.goto('https://www.gaojs.com.cn/s/about')time.sleep(5)page2.locator('#Joe > header > div.joe_header__above.topInDown.fixed > div > form > input').fill('自动定时发送')page2.locator('//button[@aria-label="搜索按钮"]/i').click()time.sleep(5)self.page.close()page2.close()test = AMPTest()
test.login()

playwright相关推荐

  1. python:自动化测试 playwright 库上传和下载

    今天主要是聊聊playwright中的上传和下载操作,playwright中的上传和下载比selenium的上传和下载要简便些,例:selenium中的上传还要有对话框选择文件,再点击上传,而play ...

  2. 新一代爬虫利器 —— Playwright

    编辑:乐乐 | 来自:SegmentFault 正文 技术编辑:宗恩丨发自 思否编辑部 最近,微软开源了一个项目叫「playwright-python」,作为一个兴起项目,出现后受到了大家热烈的欢迎, ...

  3. 使用 Playwright 对 ASP.NET Core 应用执行功能测试

    前言 在前面的文章中,我们已经介绍过 Playwright for .NET,它常用于自动化测试已经部署好的 Web 应用. 其实,开发人员也可以使用它在 ASP.NET Core 应用程序中进行功能 ...

  4. C#实现网页加载后将页面截取成长图片 | Playwright版

    前言 如何将网页生成预览图? 要实现这个功能,可以用WebBrowser组件模拟浏览器,或者使用系统浏览器访问网页,再进行截图操作. 但是,这样需要编写大量的控制代码. 工欲善其事,必先利其器! 利用 ...

  5. 微软开源的Web测试和自动化神器 Playwright

    Playwright 是微软开源的一个用于 Web 测试和自动化的框架, 提供了可靠的端到端测试, 功能非常强大, 可以在测试, 爬虫,自动化场景中使用. 跨浏览器 Playwright 支持所有现代 ...

  6. 用啥Selenium?! .NET程序员就用自家的Playwright for .NET

    提到用于Web应用程序自动化测试的工具,大家肯定第一个想到的就是Selenium.可以说,Selenium已经成为以编程方式自动化浏览器的事实标准.但是,Selenium作为老牌工具,也存在一些缺点, ...

  7. 使用Playwright对ASP.NET Core应用执行功能测试

    目录 前言 功能测试 测试案例 编写代码 启动应用 结论 前言 在前面的文章中,我们已经介绍过 Playwright for .NET ,它常用于自动化测试已经部署好的 Web 应用. 其实,开发人员 ...

  8. Playwright 可靠的端到端测试

    一个与 Puppeteer 类似的端到端(e2e)测试工具. Playwright 为当代 Web 应用程序提供可靠的端到端测试. 支持所有浏览器 在 Chromium.Firefox 和 WebKi ...

  9. Playwright之初体验

    参考文件 官方文档:https://playwright.dev/docs/intro GitHub链接:https://github.com/microsoft/playwright-python ...

  10. python:初识自动化测试 playwright 库

    Playwright是由微软公司2020年初发布的新一代自动化测试工具,相较于目前最常用的Selenium,它仅用一个API即可自动执行主流浏览器(Chromium.Firefox.WebKit)自动 ...

最新文章

  1. python编程可视化小程序_人人都可以写的可视化Python小程序第二篇:旋转的烟花...
  2. 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)...
  3. 再次修订后的版本。。。。。。1.0(发布版,射线求交三角形)
  4. pyinstaller使用方法及案例
  5. java入职华为,通过这9个Java面试题,就可以入职华为啦
  6. pku 1321 棋盘问题 DFS
  7. 操作系统系统用c语言写,用C语言写关于操作系统的一个问题。
  8. jquery validate验证remote时的多状态问题
  9. bzoj 2916: [Poi1997]Monochromatic Triangles(推理)
  10. [Algorithm] Write your own Math.pow function in Javascript, using Recursive approach
  11. SPFA - Luogu 3385 【模板】负环
  12. 解决VS2015无法打开WinSock2.h,无法找到ws2_32.lib
  13. 【非标自动化】2017年的最NB的非标自动化内容都在这了
  14. 零基础学习 自动化编程- 第一天 计算机语言
  15. Apache日志格式与配置
  16. 【Udacity项目】TMDb电影数据集探索分析
  17. 带你走进Choerodon猪齿鱼的知识管理
  18. 12岁的B站,放慢脚步做社区
  19. 互联网日报 | 华为鸿蒙OS 2.0正式发布;微信小程序日活用户超4亿;百胜中国回港上市首日破发...
  20. CTFHUB-SQL注入

热门文章

  1. python apply_async死锁_python之并发编程(线程\进程\协程)
  2. intellijidea设置向前和向后快捷键
  3. DMA (串口DMA发送接收)
  4. 金融风控实战入门-决策树规则挖掘
  5. 《实时雨水情数据库表结构与标识符标准》(2005)水情数据库建库脚本
  6. Codeforces Round #839 (Div. 3)题解
  7. 贪吃蛇大作战代码java,贪吃蛇游戏,贪吃蛇java游戏代码讲解
  8. 参数配置详解_基本参数(车身结构)
  9. 床前明月光,MySQL知多少?举头望明月,删库跑路咯!
  10. 计算机进制转进制,计算机中进制及进制转换