При веб-автоматизации возникают ситуации, когда API Playwright не может быть завершено и не может быть обработано. Его необходимо реализовать с помощью или с помощью сторонних средств, таких как js, например, для изменения свойств определенных объектов-элементов или выполнения. некоторые специальные операции. В этой статье объясняется, как драматург Как вызвать JavaScript для выполнения специальных операций.
Это было упомянуто в предыдущей статье. Давайте извлечем это здесь. Синтаксис следующий:
# Нативный js
js = 'Нативный js;'
# позвонить js
page.evaluate(js)
1. Когда контроль календарного времени ограничивает ручной ввод,fill()Невозможно записать данные,Вам нужно выполнить js, чтобы удалить атрибут только для чтения!
Подробный справочный блог:контроль времени по календарю(портал)
1. Содержимое некоторых страниц не загружается напрямую при открытии страницы. Нам нужно прокручивать страницу до тех пор, пока положение страницы не отобразится на экране, после чего серверу будет предложено загрузить соответствующий контент. Поэтому иногда нам необходимо смоделировать операцию прокрутки страницы вниз. Python не предоставляет метода управления полосой прокрутки, это можно сделать только с помощью js!
2. Используйте операторы JS для имитации прокрутки страницы вниз.
Вы можете использовать операторы JS, чтобы расположить полосу прокрутки внизу и прокрутить страницу вниз.
Синтаксис следующий:
js = "var q=document.documentElement.scrollTop=Положение полосы прокрутки"
page.evaluate(js)
Здесь брат Хун напрямую использует полосу прокрутки сада блога, чтобы провести практическую демонстрацию друзьям или детям. Вы можете заметить, что полоса прокрутки видеоролика с действием в браузере, записанного братом Хонгом, прокручивается вниз до конца сада блога.
# coding=utf-8🔥
# 1. Сначала установите кодировку UTF-8, которая поддерживает китайский и английский языки, как указано выше, обычно они располагаются в первой строке.
# 2. Примечания: включая время создания записи, автора и название проекта.
'''
Created on 2023-11-11
@author: Пекин-Хонге
Паблик аккаунт: Пекин Хонге
Project: Первый взгляд на серию «Последний выпуск» — Автоматическое тестирование Python + Playwright — 31 — Выполнение вызовов JavaScript — Часть 1
'''
# 3. Импортировать модули
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.cnblogs.com/")
js = "var q=document.documentElement.scrollTop=50000"
page.evaluate(js)
page.wait_for_timeout(3000)
# page.pause()
browser.close()
1. Запустите код, щелкните правой кнопкой мыши «Выполнить тест», и вывод консоли будет таким, как показано ниже:
2. Действие браузера на компьютере после запуска кода (прокручивается в самый низ). Как показано ниже:
1. Существует два метода определения расстояния прокрутки полосы прокрутки браузера.
document.body.scrolltop//Когда нет оператора DOCTYPE,используй это
document.documentElement.scrollTop//Стандартная веб-страница,используй это
2. Некоторые люди также говорят, что Chrome может использовать только метод document.body.scrollTop для получения значения высоты. Я попробовал, и результат:
Видно, что Chrome по-прежнему следует вышеуказанным стандартам и использует метод document.documentElement.scrollTop для получения значения высоты.
Фактически, в реальном использовании, чтобы обеспечить нормальное использование в различных браузерах, js-код может использовать следующие методы:
var height = document.body.scrolltop||document.documentelement.scrolltop
Поскольку из двух значений допустимо только одно, гарантируется, что расстояние прокрутки полосы прокрутки браузера можно получить в различных ситуациях. Конечно, мы также можем заранее попробовать это на консоли, или, если мы не сможем ее получить, мы можем использовать другой метод (выберите один из двух).
Хорошо, сегодня уже поздно, поэтому брат Хун объяснит и расскажет здесь. Спасибо за ваше терпение при чтении! Если вам нравится брат Хун, не забудьте поддержать его! ! !