หน้า 1 จากทั้งหมด 1

การเขียนวน loop ของ selenium

โพสต์แล้ว: 08/08/2017 6:44 pm
โดย บัวบุญ จันทะโคตร
สำหรับวันนี้ผมจะมานำเสนอเกี่ยวกับการเขียน loop ใน selenium โดย โปรแกรม selenium นั้นคือ โปรแกรมที่ใช้เขียนทดสอบ เว็บไซต์แอพพลิเคชั่น โดยโปรแกรม selenium นี้สามารถเขียน test case ให้ มันทำงาน โดยมันจะทำงานอยู่ภายใต้ Webdriver ซึ่ง Webdriver นั้นคือเว็บบราว์เซอ ที่ใช้ในการแสดงผลการรันของ selenium นั้นเอง และโปรแกรม Webdriver นั้น สามรถหาดาว์โหลดได้ที่ http://docs.seleniumhq.org/download/ เมื่อดาว์โหลดมาแล้วให้ทำการติดตั้ง ตัวโปแกรมลงใน โฟลเดอร์ ไฟล์ python2.7
และนี่ก็คือตัวอย่างของโค้ด selenium วน loop กันครับ

โค้ด: เลือกทั้งหมด

from selenium import webdriver
driver = webdriver.Chrome('/usr/local/lib/python2.7/site-packages/chromedriver')

driver.get("http://www.mindphp.com/forums/index.php")

 weblink = driver.find_elements_by_css_selector('a.forumtitle')
   for w in range(len(weblink)):
    link = driver.find_elements_by_css_selector('a.forumtitle')
     allweb = link[w].get_attribute("href")
     driver.get(allweb.encode('utf-8'))
     driver.back()


จากโค้ดในส่วนนี้ จะเป็นการนำเอา webdriver เข้ามาเรียกใช้

โค้ด: เลือกทั้งหมด

from selenium import webdriver


ในส่วนนี้จะเป็นการระบุ path ของ webdriver

โค้ด: เลือกทั้งหมด

driver = webdriver.Chrome('/usr/local/lib/python2.7/site-packages/chromedriver')


ส่วนนี้จะเป็นการใส่ลิ้งค์ เพื่อให้ selenium เริ่มการทำงานตามลิ้งค์ที่ใส่

โค้ด: เลือกทั้งหมด

driver.get("http://www.mindphp.com/forums/index.php")


ส่วนนี้จะเป็นการสร้างตัวแปรที่ weblink เพื่อเก็บข้อมูลของ driver.find_elements_by_css_selector('a.forumtitle') ของเรา

โค้ด: เลือกทั้งหมด

weblink = driver.find_elements_by_css_selector('a.forumtitle')


ส่วนนี้จะเป็นการเขียน loop for โดยเมื่อสร้างตัวแปรที่ชื่อ weblink แล้วให้เรานำตัวแปรนั้นมาใส่ใน for เพื่อทำการวนลูปต่อไป

โค้ด: เลือกทั้งหมด

   for w in range(len(weblink)):
    link = driver.find_elements_by_css_selector('a.forumtitle')
     allweb = link[w].get_attribute("href")
     driver.get(allweb.encode('utf-8'))
     driver.back()

ส่วนนี้จะคำสั่งที่ใช้ในการย้อนกลับไปหน้าที่แล้วโดยจะใช้คำสั่งดังนี้

โค้ด: เลือกทั้งหมด

    driver.back()


หวังว่าจะมีประโยชน์แก่ท่านผุ้ที่เข้ามารับชมกันนะครับ โดยคำสั่งต่างๆ ของ selenium ท่านสามารถศึกษาเพิ่มเติมได้ที่ viewtopic.php?f=16&t=41749&p=101835&hilit=selenium#p101835