จากในบทความเรื่อง Explicit waiting การรอแบบเงื่อนไขตามที่กำหนด เราก็ได้พูดอธิบายกันไปแล้วว่ามันคืออะไร ทำไมถึงต้องใช้ และได้ทำการยกตัวอย่างการใช้งานกันไปแล้วเล็กน้อย ซึ่งจริง ๆ แล้วนอกจากในตัวอย่าง ยังมีเงื่อนไขอีกมากมาย ที่เราสามารถทำการกำหนดได้ เงื่อนไขเหล่านี้จะใช้ควบคู่ไปกับ Explicit waiting เท่านั้น ไม่สามารถใช้กับ Implicit waiting ได้ และในบทความนี้เราจะมาพูดถึงเงื่อนไขต่าง ๆ ที่สามารถใช้ได้กับ explicit wait และยกตัวอย่างการใช้งานเล็กน้อย บน selenium ภาษาไพทอนกัน 

เงื่อนไขต่าง ๆ 

title_is เป็นการรอเพื่อตรวจสอบชื่อของเว็บเพจนั้น จะค่าส่งกลับมาเป็น True, False
title_contain เป็นการรอเพื่อตรวจสอบชื่อของเว็บเพจนั้น ว่ามีสตริงที่กำหนดหรือไม่
presence_of_element_located ตรวจสอบว่ามี element ที่กำหนดหรือไม่ ไม่จำเป็นจะต้องมองเห็นก็ได้
visibility_of_element_located ตรวจสอบว่ามี element ที่กำหนดหรือไม่ จำเป็นที่จะต้องมองเห็น
visibility_of ตรวจสอบว่า element ที่กำหนด แสดงอยู่หรือไม่
precense_of_all_element_located ตรวจสอบว่ามี element ที่กำหนดหรือไม่ ไม่จำเป็นจะต้องมองเห็นก็ได้
element_located_to_be_selected ตรวจสอบว่ามี element ที่กำหนด สามารถใช้คำสั่ง select ได้หรือไม่
element_located_selection_state_to_be ตรวจสอบว่า element ดังกล่าว ถูกใช้คำสั่ง select หรือไม่
alert_is_present ทำการรอจนกว่าจะมีกล่องข้อความแจ้งเตือนแสดง
element_to_be_clickable ตรวจสอบว่า element มองเห็นได้และสามารถคลิกได้

Syntax

WebDriverWait(driver, 10).until('คำสั่ง'('element'))

ตัวอย่างการใช้งาน

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

driver = webdriver.Firefox()
driver.get("http://google.com")

wait = WebDriverWait(driver, 10)
element = wait.until(EC.title_is('Google'))

print(element)

ผลลัพธ์

ผลลัพธ์การใช้คำสั่งเพื่อตรวจสอบชื่อ

ผลลัพธ์คำสั่ง title_is

     ผลลัพธ์ที่ออกมาก็จะส่งกลับเป็นค่า True หรือ False ค่า True หมายความว่าชื่อ Title ของเว็บเพจเป็นไปตามที่เรากำหนด แต่ถ้าหากผลลัพธ์ที่ออกมาเป็น False หมายความว่าชื่อของเว็บเพจไม่ตรงกับที่เราทำการระบุ

 

ตัวอย่างการใช้งาน

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://google.com")

wait = WebDriverWait(driver, 10)
element = wait.until(EC.visibility_of_element_located((By.NAME, 'q')))

print(element)

ผลลัพธ์

ผลลัพธ์การใช้คำสั่งในการรอ จนกว่า element จะแสดงบนหน้าเว็บ

ผลลัพธ์คำสั่ง visibility_of_element_located

     ผลลัพธ์ที่ออกมานั้น ก็จะเป็นการรอจนกว่า element ที่เรากำหนดแสดงบนหน้าเว็บเพจ ภายในเวลาที่ได้กำหนดเอาไว้นั่นเอง หรือถ้าหาก element มีอยู่ แต่ไม่แสดงโปรแกรมจะก็ทำการโยน TimeOutException ออกมา

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
260
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women
Unsurpassed Сasual Dating - True Females
โดย pongsu1968 ศ 12 เม.ย. 2024 5:47 am บอร์ด Microsoft Office Knowledge & line & Etc
0
266
ศ 12 เม.ย. 2024 5:47 am โดย pongsu1968 View Topic Unsurpassed Сasual Dating - True Females
Question Tag ใช้อย่างไรในภาษาอังกฤษ
โดย internTk21 พฤ 11 เม.ย. 2024 10:46 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
160
พฤ 11 เม.ย. 2024 10:46 pm โดย internTk21 View Topic Question Tag ใช้อย่างไรในภาษาอังกฤษ
มารู้จัก Clause in English กันเถอะ
โดย internTk21 พฤ 11 เม.ย. 2024 4:26 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
136
พฤ 11 เม.ย. 2024 4:26 pm โดย internTk21 View Topic มารู้จัก Clause in English กันเถอะ
เรียนรู้การเปลี่ยน single noun เป็น plural noun
โดย internTk21 พฤ 11 เม.ย. 2024 3:29 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
141
พฤ 11 เม.ย. 2024 3:29 pm โดย internTk21 View Topic เรียนรู้การเปลี่ยน single noun เป็น plural noun
แจ้งปัญหา ติดบัคในการลงบทความในเว็บไซต์ Mindphp
โดย internTk21 พฤ 11 เม.ย. 2024 2:38 pm บอร์ด MindPHP News & Feedback
2
199
อ 14 เม.ย. 2024 11:03 am โดย mindphp View Topic แจ้งปัญหา ติดบัคในการลงบทความในเว็บไซต์ Mindphp
สอบถาม สมัครสมาชิกใช้เว็บงานเว็บไซต์ไม่ได้ ทำอย่างไร
โดย internTk21 พ 10 เม.ย. 2024 2:23 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
260
พฤ 11 เม.ย. 2024 10:48 am โดย mindphp View Topic สอบถาม สมัครสมาชิกใช้เว็บงานเว็บไซต์ไม่ได้ ทำอย่างไร
สอบถาม วิธีแนบรูปเกิน15รูปในบทความใน Mindphp ทำอย่างไร
โดย internTk21 พ 10 เม.ย. 2024 9:27 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
116
พ 10 เม.ย. 2024 5:18 pm โดย mindphp View Topic สอบถาม วิธีแนบรูปเกิน15รูปในบทความใน Mindphp ทำอย่างไร