• playwright的安装与使用


    一、安装

    所有安装严格按照指定版本,不然可能会报错,为啥报错我也不知道

    1、准备环境 win10(playwright好像不支持win7 python2)

    2、 安装python3.7.9(这个是为了兼容robot)

    https://www.python.org/downloads/windows/ 下载3.7.9版本

    2、在线安装playwright 1.9.0版本

    不要安装新版本,运行from playwright.sync_api import sync_playwright老报错,安装低版本解决了,

    1. Traceback (most recent call last):
    2. File "C:\aisa_ui\test.py", line 2, in <module>
    3. from playwright.sync_api import sync_playwright
    4. File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python311\Lib\site-packages\playwright\sync_api\__init__.py", line 23, in <module>
    5. import playwright.sync_api._generated
    6. File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python311\Lib\site-packages\playwright\sync_api\_generated.py", line 25, in <module>
    7. from playwright._impl._accessibility import Accessibility as AccessibilityImpl
    8. File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python311\Lib\site-packages\playwright\_impl\_accessibility.py", line 17, in <module>
    9. from playwright._impl._connection import Channel
    10. File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python311\Lib\site-packages\playwright\_impl\_connection.py", line 21, in <module>
    11. from greenlet import greenlet
    12. File "C:\Users\admin-pc1102\AppData\Local\Programs\Python\Python311\Lib\site-packages\greenlet\__init__.py", line 29, in <module>
    13. from ._greenlet import _C_API # pylint:disable=no-name-in-module
    14. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    15. ImportError: DLL load failed while importing _greenlet: 找不到指定的模块。
    16. Process finished with exit code 1
    1. pip install playwright==1.9.0 #安装playwright
    2. playwright install #安装playwright支持的浏览器
    3. pip uninstall playwright #如果装错了 可以卸载再执行上面命令重装

    3、执行下面命令 能执行成功就代表安装没问题了

    playwright codegen --target python -o open_baidu.py -b chromium https://www.baidu.com

    如果有报错如下报错

    page.goto: net::ERR_NAME_NOT_RESOLVED at http://chromium/  navigating to "http://chromium/", waiting until "load"

    是因为ssl证书错误,忽略https证书运行

    playwright codegen --ignore-https-errors --target python -o open_baidu.py -b chromium https://www.baidu.com

    4、python3环境下的robot安装

    pip install robotframework 

    pip install robotframework-ride(不支持python3.8及以上版本,3.8及以上安装会报wxpython错误)

    5、git安装

    直接下一步安装就行,下载地址:

    Git - Downloads

    二、使用

    录制脚本

    2.1、python -m playwright codegen -b chromium --target python -o test.py

    生成的test.py在重新运行时遇到了问题,如上,降低playwright版本后解决

    2.2、打开https链接报错

    使用context = browser.new_context(ignore_https_errors=True) 解决

    2.3、元素定位:

    文本定位:page.click("text=攻击成功告警数") 或者page.click("text=攻击成功告警数")

    按钮定位:page.click("button(也可以是span等):has-text(\"登 录\")")    #按钮包含登录字样

    定位元素个数:a = page.locator("text="+text).count()

    2.4、页面操作:

    page.click(定位)   #点击

    page.fill(定位,值)  #输入

    page.text_content(定位) #获取文本值

    page.press(定位,按键(比如Enter))

    2.5 文件上传

    1. #这种适用于上传元素是点击按钮上传
    2. with page.expect_file_chooser() as fc_info:
    3. page.click("button:has-text(\"文件上传\")")
    4. file_chooser = fc_info.value
    5. file_chooser.set_files("文件路径") #多个文件用列表["文件路径1","文件路径2"]

    三、jenkins集成

    遇到问题:

    1、报错ms-playwright路径不对

    解决:直接将pc上的ms-playwright文件夹复制到这个路径运行

    2、邮件发送失败报错

    Not sending mail to unregistered user XX because your SCM claimed this was associated with a user ID ‘XX' which your security realm does not recognize; you may need changes in your SCM plugin

  • 相关阅读:
    [附源码]计算机毕业设计图书馆出版物预订系统Springboot程序
    【单片机基础】ADC0832详解
    云服务器ip使用细节(公网、私有)
    Spring系列-细说bean标签的parent属性使用
    第十三届蓝桥杯大赛软件赛省赛第二场(Java 大学A组)
    Kubernetes Service/Pod DNS 记录的添加时机
    C++——vector
    在Spring Boot项目中集成监控与报警
    1593. 拆分字符串使唯一子字符串的数目最大
    C++ Reference: Standard C++ Library reference: Containers: deque: deque: back
  • 原文地址:https://blog.csdn.net/weixin_40748006/article/details/129102796