จากที่เรานั้นได้ศึกษาการใช้งานโมดูล Selenium (ซิลิเนี่ยม) คืออะไร ในหัวข้อ แนะนำวิธีการดึงข้อความออกจาก XPath และเก็บไว้ในตัวแปร ด้วยโมดูล Selenium (ซิลิเนียม) มากันแล้ว หลายท่านอาจจะใช้งานได้ไม่มีปัญหาบางท่านอาจจะเจอปัญหาบางประการบางที โค้ดเดียวกันแค่คนละ ระบบปฏิบัติการ ก็อาจจะเจอปัญหาต่างกันได้ ในบทความนี้จะมาแนะนำการแก้ไขปัญหาที่ได้พบเจอมาให้ทุกท่านได้อ่านกัน
ปัญหาดึงข้อความออกมาจากหน้าเว็บโดยใช้โมดูล selenium (ซิลิเนียม) แล้วไม่ตรงกับหน้าเว็บ
ปัญหาดึงข้อความออกมาจากหน้าเว็บโดยใช้โมดูล selenium (ซิลิเนียม) แล้วไม่ตรงกับหน้าเว็บ นั้นอาจจะมีปัญหามากหลายๆประการเช่น ความเร็วอินเตอร์เน็ต ความไม่เสถียรของโมดูลเอง และปัญหาอื่นๆ ซึ่งเราสามารถแก้ปัญหาได้โดยเข้าไปแก้ไขในโค้ด
วิธีการแก้ปัญหาดึงข้อความออกมาจากหน้าเว็บโดยใช้โมดูล selenium (ซิลิเนียม) แล้วไม่ตรงกับหน้าเว็บ
โดยปกติแล้วเราจะเขียนโค้ดการดึงข้อควาจากหน้าเว็บดังนี้
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
title1 = 'สอบถามเรื่อง IP Address Soap webserver หน่อยค่ะ'
title2 = "ใส่ Working Adress กด Save ไม่ได้"
driver = webdriver.Firefox(executable_path=r'C:\Users\BDC-CLUB\PycharmProjects\mdsoft\geckodriver.exe')
driver.get("http://www.mindphp.com/online-tools/tags.html")
a = driver.find_element_by_id("filter-search")
a.send_keys("css")
a.submit()
ids = driver.find_elements_by_xpath("//*[@id='adminForm']/ul/li/div/a")
for ii in ids:
print(ii.text)
ผลการรัน:เราจะเห็นว่าได้ข้อความไม่ตรงกับในเว็บ
computer case
E-mail Address
Electronic
Gopher
Instruction
Java SDK
Mainboard
Processing
Reduced
sitemap
โปรแกรมบัญชี
.htaccess
A Record
Abstract Calss
Acceleration
accepting
Access Point
Account Receivable
Accounting
Accounting Information System
วิธีการแก้ไขปัญหาก็คือใส่ time.sleep(2) ในโค้ด
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
title1 = 'สอบถามเรื่อง IP Address Soap webserver หน่อยค่ะ'
title2 = "ใส่ Working Adress กด Save ไม่ได้"
driver = webdriver.Firefox(executable_path=r'C:\Users\BDC-CLUB\PycharmProjects\mdsoft\geckodriver.exe')
driver.get("http://www.mindphp.com/online-tools/tags.html")
a = driver.find_element_by_id("filter-search")
a.send_keys("css")
a.submit()
time.sleep(2) #โค้ดที่เพิ่มขึ้นมา
ids = driver.find_elements_by_xpath("//*[@id='adminForm']/ul/li/div/a")
for ii in ids:
print(ii.text)
ผลการรัน
CSS
CSS3
HTMLCSS
บทเรียน CSS3