软件测试|web自动化测试神器playwright教程(三十四)

简介: 软件测试|web自动化测试神器playwright教程(三十四)

前言

selenium有一个爬虫特别喜欢的功能,就是driver.page_source功能,它可以打印整个html页面的内容,我们可以从整个页面的内容中提取出我们想要的内容,playwright同样支持打印整个html页面的内容。

获取完整页面html内容

playwright提供了page.content()方法来获取页面内容,示例如下:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    page.goto("https://ceshiren.com/")
    print(page.content())

运行脚本,结果如下图:

image.png

获取部分HTML内容

page.content() 是获取整个页面的HTML,但是有时候我们不需要获取完整的HTML内容,例如下面的页面,我们只取部分的内容:

image.png

playwright提供了locator().inner_html()方法获取页面内容

  • inner_html() 获取元素的整个html源码内容
  • inner_text() 获取元素的文本内容

示例代码如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://blog.csdn.net/Tester_muller?type=lately")
    # 获取某个元素的HTML
    blog = page.locator('.user-profile-head-info-r-c')
    print(blog.inner_html())
    print('-----------------------------------')
    print(blog.inner_text())

    # ---------------------
    context.close()
    browser.close()


with sync_playwright() as playwright:
    run(playwright)

----------------------------------------------
打印的inner_text如下:
119,102
总访问量
545
原创
3,577
排名
53
粉丝
0
铁粉
学习成就

获取页面文本

text_content() 用来获取某个元素内所有文本内容,包含子元素内容,隐藏元素也能获取。
inner_text() 的返回值会被格式化 ,但是text_content()的返回值不会被格式化
最重要的区别 inner_text()返回的值, 依赖于页面的显示, text_content()依赖于代码的内容

示例代码如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://blog.csdn.net/Tester_muller?type=lately")
    # 获取某个元素的HTML
    blog = page.locator('.user-profile-head-info-r-c')
    # print(blog.inner_html())
    print('-----------------------------------')
    print(blog.inner_text())
    print('-----------------------------------')
    print(blog.text_content())

--------------------------------
输出结果如下:
119,126
总访问量
545
原创
3,577
排名
53
粉丝
0
铁粉
学习成就
-----------------------------------
博客:119,124      视频:2 119,126 总访问量  545 原创  3,577 排名  53 粉丝   0 铁粉   学习成就

all_inner_texts() 与 all_text_contents()

all_inner_texts() 和 all_text_contents() 也是用于获取页面上的文本,但是返回的是list列表,示例如下:

from playwright.sync_api import Playwright, sync_playwright, expect


def run(playwright: Playwright) -> None:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://blog.csdn.net/Tester_muller?type=lately")
    # 获取某个元素的HTML
    blog = page.locator('.user-profile-head-info-r-c')
    print(blog.all_inner_texts())
    print('-----------------------------------')
    print(blog.all_text_contents())

    # ---------------------
    context.close()
    browser.close()
-----------------------------------------
输出结果如下:

['119,131\n总访问量\n545\n原创\n3,577\n排名\n53\n粉丝\n0\n铁粉\n学习成就']
-----------------------------------
['博客:119,129      视频:2 119,131 总访问量  545 原创  3,577 排名  53 粉丝   0 铁粉   学习成就']

总结

本文主要介绍了playwright打印页面内容的方法,playwright相比selenium的一大优点就是,playwright能够打印部分页面内容,还可以提取文本等信息,我们熟练使用playwright,能够解决一些使用selenium无法解决的问题。

相关文章
|
6天前
|
测试技术 UED Python
探索软件测试的边界:自动化与手动测试的协同
【8月更文挑战第59天】在追求效率和质量的软件生产中,自动化测试与手动测试的辩论从未停止。本文将通过实际案例,揭示二者如何相辅相成,共同构建更健壮的软件测试体系。我们将深入探讨自动化测试的优势、手动测试不可替代的角色以及它们如何在实际项目中协同工作,旨在为读者提供一种平衡的视角来看待软件测试的实践。
100 65
|
1天前
|
设计模式 敏捷开发 jenkins
软件测试中的自动化测试实践指南
本文旨在探讨软件测试中自动化测试的实施方法及其重要性,通过具体案例分析自动化测试的步骤、工具选择及最佳实践。我们将从自动化测试的基本概念入手,逐步解析其在实际项目中的应用,并提供一些常见问题的解决方案。
|
5天前
|
机器学习/深度学习 人工智能 安全
软件测试中的探索性测试:一种高效发现软件缺陷的方法
本文将深入探讨软件测试中的一种关键方法——探索性测试。探索性测试是一种动态的、探索性的软件测试方法,它依赖于测试人员的直觉和经验,通过实际操作软件来发现潜在的问题和缺陷。与传统的基于预定义用例的测试方法相比,探索性测试更加灵活,能够更全面地覆盖软件的各个方面,从而更有效地发现难以预见的错误和漏洞。
|
7天前
|
监控 中间件 测试技术
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
该文章指出软件测试工程师不仅需要掌握黑盒和白盒测试,还应该了解性能测试的重要性及其实现方法,包括负载测试、压力测试等多种性能测试类型及其在保证软件质量中的作用。
『软件测试5』测开岗只要求会黑白盒测试?NO!还要学会性能测试!
|
7天前
|
测试技术 程序员 C语言
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
该文章深入介绍了四种常用的白盒测试方法,包括语句覆盖、判定覆盖、条件覆盖以及路径覆盖,并探讨了这些方法在软件测试中的应用。
『软件测试4』耗子尾汁!2021年了,你还不知道这4种白盒测试方法吗?
|
9天前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
26 1
|
7天前
|
机器学习/深度学习 Web App开发 测试技术
『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!
该文章介绍了八种常用的黑盒测试方法,包括等价类划分、边界值分析、错误推测法、因果图法、决策表测试、状态转换法、场景法以及随机测试,并提供了相应的案例说明。
|
7天前
|
测试技术 数据库
『软件测试2』 关于黑盒测试和测试用例的基础知识
该文章讲解了黑盒测试的基本概念以及如何编写有效的测试用例,包括选择合适的输入数据、预期结果的设定和测试执行的步骤。
|
7天前
|
监控 安全 测试技术
『软件测试1』你需要了解的软件测试基础知识
该文章介绍了软件测试的基础知识,涵盖了软件缺陷的定义、类型、处理流程以及软件测试的目标和重要性等内容。
|
7天前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。

热门文章

最新文章

下一篇
无影云桌面