Tingkatkan Automasi dengan Kawalan Milisaat dalam Selenium WebDriver
Apabila bekerja dengan Selenium WebDriver, anda mungkin perlu mengawal aliran automasi anda secara eksplisit dengan menggantung pelaksanaan untuk tempoh tertentu. Walaupun perpustakaan masa menyediakan penyelesaian yang mudah untuk kelewatan melalui time.sleep(), adalah penting untuk memahami kelemahan dan meneroka pendekatan alternatif.
Ketepatan Masa
Walaupun masa membolehkan jeda dalam beberapa saat, ia tidak mempunyai fleksibiliti untuk mengurus milisaat. Walau bagaimanapun, anda boleh melepasi nombor titik terapung untuk mencapai kawalan yang lebih halus:
import time time.sleep(0.25) # Pause for 250 milliseconds
Kelemahan masa.sleep()
Sementara time.sleep() mungkin kelihatan seperti penyelesaian mudah, ia mempunyai beberapa cabaran:
Jeda Berkesan dengan WebDriverWait
Untuk mengatasi batasan ini, Selenium menyediakan WebDriverWait bersama-sama dengan expected_conditions. Kaedah ini membolehkan anda menentukan syarat (cth., kehadiran elemen, keterlihatan atau kebolehklikan) yang mesti dipenuhi sebelum meneruskan pelaksanaan skrip:
Kehadiran Elemen:
from selenium.webdriver.support.expected_conditions import presence_of_element_located element = WebDriverWait(driver, 10).until( presence_of_element_located((By.ID, "element_id")) )
Keterlihatan daripada Elemen:
from selenium.webdriver.support.expected_conditions import visibility_of_element_located element = WebDriverWait(driver, 10).until( visibility_of_element_located((By.ID, "element_id")) )
Kebolehklikan Elemen:
from selenium.webdriver.support.expected_conditions import element_to_be_clickable element = WebDriverWait(driver, 10).until( element_to_be_clickable((By.ID, "element_id")) )
Kesimpulan
Menggunakan WebDriverWait dengan expected_conditions menawarkan kawalan tepat ke atas aliran pelaksanaan skrip automasi anda. Dengan menyatakan keadaan yang sejajar dengan gelagat elemen web, anda boleh menghapuskan kelewatan yang tidak perlu dan meningkatkan kecekapan dan kestabilan ujian anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Kawalan Ketepatan Milisaat dan Mengelak Masalah `time.sleep()` dalam Automasi Selenium WebDriver?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!