Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana Berkesan Menunggu Pelbagai Elemen untuk Dimuatkan dalam Selenium dengan Python?
Senarai yang dimuatkan AJAX boleh memberikan cabaran untuk pengesahan keterlihatan dalam Selenium. Untuk menyemak dengan pasti sama ada senarai yang mengandungi berbilang elemen telah dimuatkan sepenuhnya, pertimbangkan pendekatan berikut:
Menggunakan WebDriverWait, anda boleh mendorong keadaan visibility_of_all_elements_located():
<code class="python">elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "ul.ltr li[id^='t_b_'] > a[id^='t_a_'][href]")))</code>
Sebagai alternatif, anda boleh menggunakan XPath:
<code class="python">elements = WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")))</code>
Untuk menunggu bilangan elemen tertentu, seperti 10, gunakan fungsi lambda :
<code class="python">myLength = 9 WebDriverWait(driver, 20).until(lambda driver: len(driver.find_elements_by_xpath("//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")) > int(myLength))</code>
<code class="python">myLength = 10 WebDriverWait(driver, 20).until(lambda driver: len(driver.find_elements_by_xpath("//ul[@class='ltr']//li[starts-with(@id, 't_b_')]/a[starts-with(@id, 't_a_') and starts-with(., 'Category')]")) == int(myLength))</code>
Atas ialah kandungan terperinci Bagaimana Berkesan Menunggu Pelbagai Elemen untuk Dimuatkan dalam Selenium dengan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!