Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjeda Selenium WebDriver dengan Cekap dalam Python?

Bagaimana untuk Menjeda Selenium WebDriver dengan Cekap dalam Python?

Barbara Streisand
Barbara Streisandasal
2024-12-19 19:01:16996semak imbas

How to Efficiently Pause Selenium WebDriver Execution in Python?

Penyataan Menunggu dan Bersyarat dalam Selenium WebDriver

Soalan: Bagaimanakah saya boleh menjeda pelaksanaan Selenium WebDriver selama milisaat dalam Python?

Jawapan:

Sementara fungsi time.sleep() boleh digunakan untuk menggantung pelaksanaan selama beberapa saat tertentu, ia biasanya tidak disyorkan dalam Selenium WebDriver automasi.

Menggunakan Selenium's WebDriverWait

Sebaliknya, Selenium menyediakan kelas WebDriverWait bersama-sama dengan syarat yang dijangkakan untuk mengesahkan keadaan elemen. Berikut ialah keadaan biasa yang dijangkakan:

  1. Kehadiran Elemen Terletak: Menyemak sama ada elemen terdapat pada DOM.
  2. Keterlihatan Elemen Terletak : Menyemak sama ada elemen boleh dilihat dan mempunyai ketinggian dan lebar lebih besar daripada 0.
  3. Elemen Boleh Diklik: Menyemak sama ada elemen boleh dilihat, didayakan dan boleh berinteraksi.

Contoh:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10) # Timeout after 10 seconds

# Wait until an element is clickable
element = wait.until(EC.element_to_be_clickable((By.ID, "some_button")))
element.click()

Kaedah ini lebih disukai dari semasa ke semasa.sleep() kerana ia mengelakkan menunggu dan menyemak yang tidak perlu untuk keadaan elemen yang diingini sebelum meneruskan, meningkatkan kecekapan ujian anda.

Rujukan:

Untuk maklumat lanjut, rujuk:

  • WebDriverWait tidak berfungsi seperti yang diharapkan: https://stackoverflow.com/questions/37372143/webdriverwait-not-working-as-expected

Atas ialah kandungan terperinci Bagaimana untuk Menjeda Selenium WebDriver dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn