2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客文章浏览阅读3k次,点赞86次,收藏13次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……_软件测试刷题小程序​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502​编辑https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5502

在自动化测试中,等待是一个不可或缺的环节。由于网络延迟和页面加载时间的不确定性,我们需要确保在进行元素操作之前,页面已经完全加载,或者特定的元素已经可用。在Playwright中,有着强大的等待机制来帮助我们处理这些情况。今天,我们将通过百度网页的例子来深入探讨Playwright的等待策略

示例1:等待页面网络请求完成

让我们来看一个使用Playwright等待直到500毫秒内没有新的网络请求发生的例子。我们将访问百度网页,并搜索一个关键词,等待直到500毫秒内没有新的网络请求发生。

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto('https://www.baidu.com')
    page.fill('input[name="wd"]', 'Playwright')  # 填充搜索关键词
    page.click('input[id="su"]')    # 点击搜索按钮

    # 等待直到500毫秒内没有新的网络请求发生。
    page.wait_for_load_state('networkidle')

    browser.close()

在这个例子中,我们首先导航到百度首页,然后填充搜索框并点击搜索按钮。接下来,我们使用page.wait_for_load_state方法等待直到500毫秒内没有新的网络请求发生。这个方法会阻塞后续的操作,直到没有新的网络请求发生或者超时。

示例2:等待元素出现

wait_for_selector 方法是一种等待机制,它允许你等待直到页面上的某个元素变得可用。这个方法特别有用,因为它确保了在与页面元素交互之前,该元素已经加载并且可以操作。这有助于避免因元素尚未准备好而导致的测试失败。

wait_for_selector 方法返回一个 Locator 对象,该对象表示页面上的元素。你可以对这个 Locator 对象使用各种 Playwright API 方法,如 clickfillget_attribute 等。

假设你想要在百度搜索 "Playwright" 这个关键词,并等待搜索结果中的一个特定元素出现。以下是一个使用 wait_for_selector 方法的示例:

from playwright.sync_api import sync_playwright

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

    # 导航到百度首页
    page.goto("https://www.baidu.com")

    # 等待搜索框元素出现
    search_box = page.wait_for_selector('#kw')

    # 在搜索框中输入搜索关键词
    search_box.fill('Playwright')

    # 按下回车键进行搜索(等同于点击搜索按钮)
    page.press('#kw', 'Enter')

    # 等待搜索结果中的一个结果元素出现
    result = page.wait_for_selector('.result')

    # 打印第一个搜索结果的文本
    first_result_text = result.inner_text()
    print(first_result_text)

    # 关闭浏览器
    browser.close()

在这个例子中:

  1. 首先,我们使用 goto 方法导航到百度的首页。

  2. 使用 wait_for_selector 方法等待 ID 为 #kw 的搜索框元素出现。这确保了在尝试填充搜索框之前,该元素已经加载并可用。

  3. 使用 fill 方法在搜索框中输入 "Playwright"。

  4. 使用 press 方法模拟按下回车键,这将触发搜索。

  5. 再次使用 wait_for_selector 方法等待搜索结果中的一个结果元素(类名为 .result)出现。

  6. 使用 inner_text 方法获取第一个搜索结果的文本内容,并打印出来。

  7. 最后,关闭浏览器。

通过使用 wait_for_selector 方法,我们可以确保在执行操作之前,目标元素已经加载并且可以与之交互,从而提高自动化脚本的稳定性和成功率。

示例3:等待指定的时间

wait_for_timeout 是 Playwright 中的一个实用函数,它允许自动化脚本暂停执行一段时间,以便页面有足够的时间来完成某些可能需要时间的操作,例如等待网络请求完成、动画完成或其他异步事件。这个函数不会检查页面上的任何特定条件,只是简单地等待指定的时间。

假设我们要在 360 搜索网站上搜索一些内容,并在点击搜索按钮后等待一段时间,以确保搜索结果页面完全加载。以下是一个使用 wait_for_timeout 的示例:

from playwright.sync_api import sync_playwright

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

    # 导航到 360 搜索网站
    page.goto("https://www.360.cn/")

    # 等待搜索框可见
    search_box = page.wait_for_selector('#haosou-input')

    # 在搜索框中输入搜索内容
    search_box.fill('Playwright 测试')

    # 点击搜索按钮
    search_button = page.wait_for_selector('.btn-submit')
    search_button.click()

    # 等待搜索结果页面完全加载
    page.wait_for_timeout(3000)  # 等待 3 秒

    # 执行搜索结果页面上的其他操作,例如获取结果数量等
    # ...

    browser.close()

在这个示例中:

  1. 我们首先使用 goto 方法导航到 360 搜索网站的首页。

  2. 使用 wait_for_selector 等待搜索框元素可见。

  3. 使用 fill 方法在搜索框中输入搜索关键词。

  4. 使用 wait_for_selector 等待搜索按钮可见并点击它。

  5. 使用 wait_for_timeout 等待 3 秒钟,以确保搜索结果页面完全加载。这是一个简单的等待,不考虑页面上的具体元素状态。

  6. 在等待完成后,我们可以执行其他需要在搜索结果页面上进行的操作。

  7. 最后,关闭浏览器。

请注意,wait_for_timeout 应该谨慎使用,因为它不检查页面状态,只是简单地等待指定的时间。在可能的情况下,最好使用更具体的等待条件,例如等待某个元素出现或消失,或者等待页面的某个状态变化。这样可以确保脚本的稳定性和可靠性。

结语

掌握了Playwright的等待机制,你的自动化测试脚本将更加稳定和可靠。无论是同步等待还是异步等待,都能帮助你确保在正确的时机进行元素操作。在接下来的系列文章中,我们将继续探索Playwright的高级功能,帮助你编写更加复杂和强大的自动化测试脚本。

感谢你的阅读,如果你有任何关于Playwright等待机制的问题,或者想要分享你的使用经验,欢迎在评论区留言。让我们一起学习,一起进步。下期见!

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

Logo

一站式 AI 云服务平台

更多推荐