หลังจากที่เรานั้นได้ศึกษาเกี่ยวกับบทความการใช้โมดูล selenium (ซิลิเนียม) ในภาษาไพธอนกันไปบ้างแล้วในบทความต่างๆ เช่นบทความ แนะนำการกรอกข้อความด้วยโมดูล selenium (ซิลิเนียม) โดยอ้างอิงจากข้อความด้านหน้า ,บทความ แนะนำเมธธอดช่วยตรวจสอบว่ามี Element (เอลลิเม้น) ที่เราต้องการในหน้าเว็บนั้นหรือไม่ในโดมูล selenium (ซิลิเนียม),บทความ วิธีเปิดลิงค์ไตเติ้ลที่มีคำที่เราต้องการโดยโมดูล selenium (ซิลิเนียม) ในภาษาไพธอน
ปัญหาหน้าเว็บโหลดช้าแล้วโปรแกรมหาออบเจคไม่เจอในโมดูล selenium (ซิลิเนียม) คืออะไร
โดยปกติแล้วปัญหาที่พบบ่อยในการใช้ โมดูล Selenium (ซิลิเนีบม) นั่นก็คือ โปรแกรมหาเอลลิเม้นของออบเจคไม่เจอ ทั้งๆที่เรานั้นใส่เอลลิเม้นถูก บางทีปัญหานี้ก็เกิดจากการที่โค้ดบรรทัดที่ใช้ในการหาโมดูลรันก่อนที่หน้าเว็บนั้นจะโหลดเสร็จทำให้ไม่เจอเอลลิเม้นของออบเจคนั้นซึ่งเจ้าตัวเมะอดที่ตะมาแก้ไขความผิดพลาดนี้ในโมดูล Selenium (ซิลิเนียม) นั้นมีอยู่แล้ว สามารถดูได้จากในบทความ แนะนำเมธธอดช่วยตรวจสอบว่ามี Element (เอลลิเม้น) ที่เราต้องการในหน้าเว็บนั้นหรือไม่ในโดมูล selenium (ซิลิเนียม) แต่ในบทความนี้จะมาแนะนำอีกวิธีหนึ่งซึ่งสามารถแก้ไขปัญหาได้เหมือนกัน
แนะนำวิธีการแก้ปัญหาหน้าเว็บโหลดช้าแล้วโปรแกรมหาออบเจคไม่เจอในโมดูล selenium (ซิลิเนียม)
เราจะใช้ try Except: ในการจัดการ กับปัญหาหน้าเว็บโหลดช้าแล้วโปรแกรมหาออบเจคไม่เจอในโมดูล selenium (ซิลิเนียม) ด้านล่างจะเป็นตัวอย่างโค้ดในการแก้ไขปัญหา
for i in range(10):
try:
print("click setting")
time.sleep(3)
self.driver.find_element_by_xpath(
"//span[contains(@class,'oe_menu_text') and contains(text(), 'Settings')]").click()
print("break")
break
except:
pass
การทำงานของโค้ดด้านบน
1.ลูป จะกำหนดการทำงานของโปรแกรมว่าจะให้วนมากสุดกี่รอบ
for i in range(10):
2. ถ้าหากโค้ดใน try: มี เออเร่อเกิดขึ้นซึ่งจะเกิดเออเร่อในบล็อกนี้นั้นส่วนมากจะเออเร่อจากการหาออบเจคบนหหน้าเวบไม่เจอ ทำให้โปรแกรมไม่รันไปไม่ถึง break วนลูปกลับมาใหม่ ซึ่งจะวนลูปมากสุด 10 รอบ ตามที่เราได้กำหนดไว้ดังด้านบน แต่ถ้าไม่เกิดเออเร่อขึ่น (หาเอลลิเม้นเจอ) โปรแกรมก็จะรันไปถึง break และออกจากลูปไปทำโปรแกรมถัดไป
try:
print("click setting")
time.sleep(3)
self.driver.find_element_by_xpath(
"//span[contains(@class,'oe_menu_text') and contains(text(), 'Settings')]").click()
print("break")
break
สามารถศึกษาเพิ่มเติมได้จากบทความ