《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置

python,playwright · 浏览次数 : 0

小编点评

**简介** 当页面内容过大,无法完整显示时,需要使用滚动条进行操作。 Playwright 提供了一个便捷的方法,可以直接使用 `scroll_into_view_if_needed()` 方法让元素出现在视窗范围内。 **代码设计** **3.1 代码设计** - 使用 `playwright.chromium.launch()` 创建浏览器实例。 - 使用 `context.new_page()` 创建页面实例。 - 使用 `page.goto()` 方法加载页面。 - 使用 `page.wait_for_timeout()` 方法等待页面加载完成。 - 使用 `page.locator()` 找到元素。 - 使用 `page.click()` 方法点击元素。 **3.2 参考代码** ```python from playwright.sync_api import Playwright, sync_playwright, expect ``` **3.3 运行代码** 运行代码,右键 Run 'Test',控制台输出页面操作的具体步骤。 **4. scroll_into_view_if_needed() 方法** 该方法可以使元素出现在视窗范围内,从而进行操作。 **4.1 代码设计** - 使用 `playwright.chromium.launch()` 创建浏览器实例。 - 使用 `context.new_context()` 创建页面实例。 - 使用 `page.goto()` 方法加载页面。 - 使用 `page.wait_for_timeout()` 方法等待页面加载完成。 - 使用 `page.get_by_text()` 方法找到元素。 - 使用 `page.scroll_into_view_if_needed()` 方法让元素出现在视窗范围内。 **4.2 参考代码** ```python from playwright.sync_api import Playwright, sync_playwright, expect ``` **5. hover() 方法** 该方法可以将鼠标悬停在元素上,并自动找到元素。 **5.1 代码设计** - 使用 `playwright.chromium.launch()` 创建浏览器实例。 - 使用 `context.new_context()` 创建页面实例。 - 使用 `page.goto()` 方法加载页面。 - 使用 `page.wait_for_timeout()` 方法等待页面加载完成。 - 使用 `page.get_by_text()` 方法找到元素。 - 使用 `page.hover()` 方法悬停鼠标在元素上。 **5.2 参考代码** ```python from playwright.sync_api import Playwright, sync_playwright, expect ``` **6. 总结** 今天分享了使用 Playwright 进行滑动元素操作的示例代码。该方法比 Selenium 更易用,无需操作滑块,方便操作元素。

正文

1.简介

在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。当页面超过屏幕的高度时候,需要滚动到元素出现的位置,让元素处于可视的窗口上才能去操作元素。

2.click()操作

如果我们使用之前的思路:要点击没有出现的或者没有加载出来的元素,我们需要滚动滚动条到元素出现的位置,然后我们才能click(),进行操作。

 但是我们这里使用playwright,就不需要这么啰嗦麻烦,只需要点击即可。

3.Playwright操作

3.1代码设计

3.2参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-12-16
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
'''

# 3.导入模块
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://www.w3cschool.cn/")
    page.wait_for_timeout(2000)
    # 点击的时候会自动滚动
    page.locator('[alt="软件测试教程"]').click()
    page.wait_for_timeout(5000)
    # #page.pause()
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

3.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

4.scroll_into_view_if_needed()

如果我们仅仅是让元素出现到窗口的可视范围,可以使用scroll_into_view_if_needed() 方法,它会让元素出现在屏幕的正中间。

4.1代码设计

4.2参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-12-16
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
'''

# 3.导入模块
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://www.douban.com/")
    page.wait_for_timeout(2000)
    # 点击的时候会自动滚动
    page.get_by_text('选电影').scroll_into_view_if_needed()
    page.wait_for_timeout(5000)
    # #page.pause()
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

4.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

5.hover()

hover()方法是将鼠标悬停在元素上,它也会自动去页面上找到元素,让它出现在可视窗口.

5.1代码设计

5.2参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2023-12-16
@author: 北京-宏哥
公众号:北京宏哥
Project: 《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置
'''

# 3.导入模块
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://www.douban.com/")
    page.wait_for_timeout(2000)
    # 点击的时候会自动滚动
    page.get_by_text('选电影').hover()
    page.wait_for_timeout(3000)
    # #page.pause()
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

5.3运行代码

1.运行代码,右键Run'Test',控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

 6.小结

今天主要分享和介绍了playwright的滑动操作元素的操作,playwright对于滑动查找元素的操作比selenium更加方便,不需要我们操作滑块就可以完成操作。

 好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

与《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置相似的内容:

《最新出炉》系列入门篇-Python+Playwright自动化测试-47-自动滚动到元素出现的位置

1.简介 在我们日常工作中或者生活中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,如下图页面,我们虽然在豆瓣首页,但是内容并不完整,如果我们想要直接点击电影模块中的选电影按钮,是需要往下滑动的。当页面超过屏幕的高度时候,需要滚动到元素出现的位置

《最新出炉》系列入门篇-Python+Playwright自动化测试-52- 字符串操作 - 下篇

1.简介 在日常的自动化测试工作中进行断言的时候,我们可能经常遇到的场景。从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言。这个时候就需要我们对字符串进行操作,宏哥这里介绍两种方法:正则和字符串切片函数split()。 2.测试场景 宏哥在这里说一下,自己的胡诌的

《最新出炉》系列入门篇-Python+Playwright自动化测试-51- 字符串操作 - 上篇

1.简介 在日常的自动化测试工作中进行断言的时候,我们可能经常遇到的场景。从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言。这个时候就需要我们对字符串进行操作,宏哥这里介绍两种方法:正则和字符串切片函数split()。 2.测试场景 宏哥在这里说一下,自己的胡诌的

《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作

1.简介 有些页面的内容不是打开页面时直接加载的,需要我们滚动页面,直到页面的位置显示在屏幕上时,才会去请求服务器,加载相关的内容,这就是我们常说的懒加载。还有就是在日常工作和学习中,经常会遇到我们的页面内容较多,一个屏幕范围无法完整展示内容,我们就需要滚动滚动条去到我们想要的地方,所以有时候我们就

《最新出炉》系列入门篇-Python+Playwright自动化测试-49-Route类拦截修改请求-下篇

1.简介 在日常工作和学习中,自动化测试的时候:在加载页面时,可能页面出现很多不是很重要或者不是我们所关注的,这个时候我们就可以选择不加载这些内容,以提高页面加载速度,节省资源。例如:可能页面上图片比较多,而我们又不关心图片内容。那么,在加载页面时,可以选择不加载图片,以提高页面加载速度。这里我们主

《最新出炉》系列入门篇-Python+Playwright自动化测试-48-Route类拦截修改请求-上篇

1.简介 在日常工作和学习中,自动化测试的时候:在加载页面时,可能页面出现很多不是很重要或者不是我们所关注的,这个时候我们就可以选择不加载这些内容,以提高页面加载速度,节省资源。例如:可能页面上图片比较多,而我们又不关心图片内容。那么,在加载页面时,可以选择不加载图片,以提高页面加载速度。这里我们主

《最新出炉》系列入门篇-Python+Playwright自动化测试-46-鼠标滚轮操作

1.简介 有些网站为了节省流量和资源,提高加载效率,采用的是动态加载(懒加载)的,也就是当拖动页面右侧滚动条后会自动加载网页下面的内容,不拖动就不会加载的或者通过鼠标滚轮操作。 2.wheel模拟鼠标滚动 wheel模拟鼠标滚动,就是通过调度一个wheel事件。(滚轮事件如果不处理可能会导致滚动,该

《最新出炉》系列入门篇-Python+Playwright自动化测试-45-鼠标操作-下篇

1.简介 鼠标为我们使用电脑提供了很多方便,我们看到的东西就可以将鼠标移动过去进行点击就可以打开或者访问内容,当页面内容过长时,我们也可以使用鼠标滚轮来实现对整个页面内容的查看,其实playwright也有鼠标操作的方法。上一篇文章中已经讲解过鼠标的部分操作了,今天宏哥在这里将剩下的其他操作进行一个

《最新出炉》系列入门篇-Python+Playwright自动化测试-44-鼠标操作-上篇

1.简介 前边文章中已经讲解过鼠标的拖拽操作,今天宏哥在这里对其的其他操作进行一个详细地介绍和讲解,然后对其中的一些比较常见的、重要的操作单独拿出来进行详细的介绍和讲解。 2.鼠标操作语法 鼠标操作介绍官方API的文档地址:https://playwright.dev/docs/api/class-

《最新出炉》系列入门篇-Python+Playwright自动化测试-43-分页测试

1.简介 分页测试,这种一般都是公共的方法系统中都写好了,这种一般出现是数据展示比较多的时候,会采取分页的方法,而且比较固定,一般是没有问题的,因此它非常适合自动化测试,但是如何使用playwright来进行分页自动化测试了,宏哥今天就讲解和分享一下。 2.测试场景 对分页来说,我们最感兴趣的和测试