Best Python code snippet using playwright-python
test_network.py
Source: test_network.py
...13# limitations under the License.14import pytest15from playwright.sync_api import Browser, Page, Playwright, Route16from tests.server import Server17def test_response_server_addr(page: Page, server: Server) -> None:18 response = page.goto(server.EMPTY_PAGE)19 assert response20 server_addr = response.server_addr()21 assert server_addr22 assert server_addr["port"] == server.PORT23 assert server_addr["ipAddress"] in ["127.0.0.1", "::1"]24def test_response_security_details(25 browser: Browser,26 https_server: Server,27 browser_name: str,28 is_win: bool,29 is_linux: bool,30) -> None:31 if (browser_name == "webkit" and is_linux) or (browser_name == "webkit" and is_win):...
Playwright auto-scroll to bottom of infinite-scroll page
Scrape info from popup window with Playwright in Python and store in pandas df
How to type F5 to refresh a page using Playwright Python
Unable to run python.exe containing playwright
How to expect attribute value with timeout using Playwright
Playwright - Checking Class Name of an Element
Modifying navigator.webdriver flag to prevent Playwright detection
How to quickly find out if an element exists in a page or not using playwright
Playwright page.wait_for_event function how to access the page and other variables from inside the callable?
How to download PDF files with Playwright? (Python)
So I found a working solution.
What I did was to combine Javascript with python Playwright code.
I start the setInterval with a timer of 200ms to scroll down on the page with page.evaluate()
and then I follow it up with a python loop that checks every second whether the total height of the page (scroll included) has changed. If it changes it continues to scroll and if it hasn't changed than the scroll is over.
This is what it looks like:
page.evaluate(
"""
var intervalID = setInterval(function () {
var scrollingElement = (document.scrollingElement || document.body);
scrollingElement.scrollTop = scrollingElement.scrollHeight;
}, 200);
"""
)
prev_height = None
while True:
curr_height = page.evaluate('(window.innerHeight + window.scrollY)')
if not prev_height:
prev_height = curr_height
time.sleep(1)
elif prev_height == curr_height:
page.evaluate('clearInterval(intervalID)')
break
else:
prev_height = curr_height
time.sleep(1)
See the below answer using the new mouse.wheel(x, y) feature for an up to date way to scroll using playwright. Combine my answer with his to lessen the need to use JS.
Check out the latest blogs from LambdaTest on this topic:
In today’s data-driven world, the ability to access and analyze large amounts of data can give researchers, businesses & organizations a competitive edge. One of the most important & free sources of this data is the Internet, which can be accessed and mined through web scraping.
The sky’s the limit (and even beyond that) when you want to run test automation. Technology has developed so much that you can reduce time and stay more productive than you used to 10 years ago. You needn’t put up with the limitations brought to you by Selenium if that’s your go-to automation testing tool. Instead, you can pick from various test automation frameworks and tools to write effective test cases and run them successfully.
It’s essential to test all components of your website to see if they work as expected. Playwright’s end to end testing capability helps you achieve this easily. However, if you’re comfortable using Python, you can pair it with the Playwright testing framework to run Python end to end testing on your website.
Selenium, a project hosted by the Apache Software Foundation, is an umbrella open-source project comprising a variety of tools and libraries for test automation. Selenium automation framework enables QA engineers to perform automated web application testing using popular programming languages like Python, Java, JavaScript, C#, Ruby, and PHP.
The web development industry is growing, and many Best Automated UI Testing Tools are available to test your web-based project to ensure it is bug-free and easily accessible for every user. These tools help you test your web project and make it fully compatible with user-end requirements and needs.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!