ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

selenium

                Selenium (ซิลิเนี่ยม) เป็น Software Testing Framework (ซอฟแวร์ เทสติ้ง เฟรมเวิร์ค) ที่มีประสิทธิภาพดีตัวหนึ่งในปัจจุบัน ซึ่งเอาไว้ใช้สำหรับทำ Automated Testing (ออโต้เมท เทสติ้ง) หรือพูดง่ายๆคือเราสามารถควบคุมหน้าเว็บได้โดยการเขียนโปรแกรม ซึ่งในPython คืออะไร ไพธอนได้มีโมดูล Selenium (ซิลิเนียม) รองรับแล้ว ซึ่งเป็น Open source (โอเพ่น ซอส) หรือ ฟรีนั่นเอง อีกทั้งยังสามารถรันได้ในหลายๆระบบปฏิบัติการเช่น วินโดวส์ ลินุกซ์ 

 

ตัวแปรประเภทดิคชันนารี่ในภาษาไพธอนคืออะไร?

                  Dictionary (ดิคชันนารี) คือประเภทข้อมูลที่เก็บข้อมูลในรูปแบบคู่ของ Key (คีย์) และ Value (แวลู) โดยที่ Key (คีย์) ใช้สำหรับเป็น Index (อินเดกซ์) ในการเข้าถึงข้อมูลและ Value เป็นค่าข้อมูลที่สอดคล้องกับ Key ของมัน  หรือจะพูดง่ายๆมันก็คือการที่เราสามารถใส่ข้อมูล 2 ตัวในแหน่งเดียวกันได้ ซึ่งการเข้าถึงข้อมูลในตัวแปรประเภท Dictionary นั้นรวดเร็วเพราะว่าข้อมูลได้ถูกทำ Index  (อินเดกซ์) ไว้อัตโนมัติโดยใช้ Key (คีย์) นอกจากนี้ตัวแปรประเภท Dictionary (ดิคชันนารี) ยังมีเมธอดและฟังก์ชัน built in (บิ๊วอิน) อำนวยความสะดวกสำหรับการทำงานทั่วไปอีกด้วย

 

ตัวอย่างการใช้ตัวแปรดิคชันนารีเพื่อเก็บลิงค์และไตเติ้ลที่ได้จากการใช้งานโมดูลซิลิเนียม

                1.เปิดหน้าเว็บที่เราต้องการเก็บไตเติ้ลและลิงค์ขึ้นมาและทำการใช้เช็คโครงสร้างในที่นี้ใช้ XPath ในการเข้าถึงโครงสร้างของไตเติ้ล

 

             2.เขียนโปรแกรมดังนี้

from selenium import webdriver
import time
driver = webdriver.Firefox(executable_path=r'C:\Users\BDC-CLUB\PycharmProjects\mdsoft\geckodriver.exe')
driver.get('http://www.mindphp.com/forums/viewforum.php?f=6') #เปิดหน้าเว้บที่ต้องการเก็บลิงค์และไตเติ้ล
xpath_topic= "//a[@class='topictitle']" #x path ของไตเติ้ล
time.sleep(3)
all_ids_topic = driver.find_elements_by_xpath(xpath_topic) #เก็บ sessionและelementไว้ในตัวแปร
print(all_ids_topic)
save_link = {} #กำหนดตัวแปรประเภาดิคชันนารี่
for i in all_ids_topic: #ลูปการเก็บลิงค์และไตเเติ้ล
    save_link[i.get_attribute('href')] = i.text
print(save_link) #ปริ้นไตเติ้ลและลิงค์

            ผลการรัน: บรรทัดด้านล่าง ซ้ายมือเป็นลิงคืของไตเติ้ล ด้านขวาเป็นไตเติ้ล

[<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="ccb27e92-0426-4353-9aba-7d808b06c29e")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="84c7742a-f578-40c5-b58d-1654fe5c2741")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="fd21c61c-589b-4f3f-a14e-ee0220e975d1")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="78022d09-8905-4773-8cf4-f86e3cc2ad1f")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="579c7e24-29a4-4a1c-987e-f8749e9a54e3")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="64a63691-1b37-4f20-b744-1bfec7afd474")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="30b2a810-62cb-43d0-bf6d-bf4ee2cf1f1f")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="0c14d1ac-d5a8-47f3-ba98-a7cb919b5d01")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="c512751e-27d0-4621-87f2-ec4c462c582d")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="689fe5fa-9426-4b04-9f74-6726cba475ce")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="3cb26a0a-4896-4715-bf17-7d366701084b")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="217eb422-7bc6-439d-a05f-afed9766f484")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="e71e36bf-389a-4d41-9683-82b117738852")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="39313e11-6379-43c5-9f66-b8d69f47e758")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="d0937951-c6af-4015-8069-67652d01c7f9")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="d8555745-45c9-4437-b8b0-324155141a01")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="7684a942-2c39-4ce1-9b74-d85a5c51ce42")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="a1643573-d65e-46d8-9826-96bf55960aea")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="8cacd564-953e-4885-af5a-7c275c0cdd2c")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="de691ac7-694d-4f09-b324-a960daf2a75c")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="0b17442f-6cba-48f4-8131-7ba2e704cf39")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="c35ba66e-4524-4bb1-b76b-9e0ac9433581")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="399630ee-311d-40aa-b4b5-1e99af7c78a3")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="7025a27d-86cf-4504-8e49-318113c44aaf")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="2cd3512e-3729-462d-98a5-ac454369e742")>, <selenium.webdriver.firefox.webelement.FirefoxWebElement (session="6b895d3a-71b5-485e-853d-77d6a443adbe", element="a04281f3-0c69-4c13-86f2-2738d032e444")>]
{'http://www.mindphp.com/forums/viewtopic.php?f=6&t=2518&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'รับเขียน module, component รับทำ สอน ทำธีม tempalte Joomla พัฒนาโปรแกรม CRM HR', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=2042&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'รับสอน ที่ปรึกษา php สอนเขียนเว็บ เขียนโปรแกรม รับจ้างทำเว็บ On-site training', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49549&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'เปรียบเทียบ isset() vs empty() vs is_null()', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49548&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'ตัวอย่างฟังก์ชัน array ภาษา php', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49547&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'เว็บเซอร์วิส คือ อะไร', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49517&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'Input textboxเป็นโค้ด Shift-JIS', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49514&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'input type=date จัดเก็บเป็นสตริง', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49513&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'เลือกค่าSelectจากฟิลด์ID ให้Auto แสดงผลลัพธ์Name ที่สอดคล้องกัน', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49512&sid=25e95c385c39ded9cdb96e3e8bc8209c': '[PHP] รวมค่าinputจากหน้าฟอร์ม ตามDigit ที่กำหนด', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49453&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามการหาค่า เดือนกับปีครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49134&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามเรื่องการแสดงค่าหน่อย', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49399&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามวิธีการรับค่าตัวแปรจากหน้าอื่นค่ะ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49366&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามวิธีการเก็บค่า ip address ค่ะ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49358&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามวิธีใส่ recaptcha ค่ะ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49338&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'ผมจะใช้ ele IF ยังไงดีครับ กรณีแบบนี้ยังไงครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49230&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถาม error แบบนี้ครับ You have an error in your SQL syntax', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49218&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามคำสั่ง insert + update ลง sql ครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=2669&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'ถามเรื่องคำสั่งในการนับคนคลิกครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49201&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถาม วิธีลบข้อมูลเดิมออกจาก Git หน่อยครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49190&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'error แบบนี้ครับ Notice: Undefined index: member_id', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49178&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'เราจะส่งค่าไปบันทึกยังไงครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49136&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'ช่วยแนะนำ mysqli หน่อยครับ จะเปลี่ยนยังไงครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49112&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'Q - ไม่สามารถอัพไฟล์ขึ้น git lab ได้', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49110&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'สอบถามการเขียน batch file หน่อยครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49084&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'ทำการกด edit ภาพแล้ว ทำยังไงให้ไปทับภาพเดิมหรือลบภาพเดิมครับ', 'http://www.mindphp.com/forums/viewtopic.php?f=6&t=49076&sid=25e95c385c39ded9cdb96e3e8bc8209c': 'มี Error mysqli_query() expects at least 2 parameters, 1 given แก้ตรงไหนครับ'}

 

             

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
c# example formt digit
โดย jataz2 อ 14 ก.ค. 2020 10:29 am บอร์ด Programming - C/C++ & java & Python
0
6
อ 14 ก.ค. 2020 10:29 am โดย jataz2
c# example read csv file
โดย jataz2 อ 14 ก.ค. 2020 10:20 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
4
อ 14 ก.ค. 2020 10:20 am โดย jataz2
งานประจำวันที่ 14 กรกฏาคม 2563
โดย Phakakrong อ 14 ก.ค. 2020 9:36 am บอร์ด M105 - ผกากรอง กุสาวดี
0
6
อ 14 ก.ค. 2020 9:36 am โดย Phakakrong
การเขียนโพสต์แชร์ในบอร์ดด้วยรูปแบบที่ถูกต้อง
โดย Phakakrong จ 13 ก.ค. 2020 5:33 pm บอร์ด Share Knowledge
0
16
จ 13 ก.ค. 2020 5:33 pm โดย Phakakrong
สรุปการศึกษา Work Instruction Logged Calls รับ / โทรออก
โดย Phakakrong จ 13 ก.ค. 2020 2:52 pm บอร์ด M105 - ผกากรอง กุสาวดี
0
11
จ 13 ก.ค. 2020 2:52 pm โดย Phakakrong
ขอความช่วยเหลือ ดู Code สไลด์ แบบมีลูกศรกดด้านข้างครับ
โดย dzjp จ 13 ก.ค. 2020 2:43 pm บอร์ด Programming - PHP
0
12
จ 13 ก.ค. 2020 2:43 pm โดย dzjp
ร่วมใจให้ชุมชนดีเด่นกับโครงการธนาคารเห็ด
โดย medalezga จ 13 ก.ค. 2020 12:12 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
24
จ 13 ก.ค. 2020 12:12 pm โดย medalezga
การนำเอาข้อมูลหลายๆ Sheet(Excel ) มารวมกันด้วย Power Query
โดย Phakakrong จ 13 ก.ค. 2020 11:37 am บอร์ด Microsoft Office Knowledge & line & Etc
0
18
จ 13 ก.ค. 2020 11:37 am โดย Phakakrong
งานประจำวันที่ 13 กรกฏาคม 2563
โดย Phakakrong จ 13 ก.ค. 2020 9:43 am บอร์ด M105 - ผกากรอง กุสาวดี
4
58
จ 13 ก.ค. 2020 7:03 pm โดย Phakakrong
ถ้าต้องการจะส่งเมล เเล้วแนบไฟล์ไปด้วยใน phpbb ทำยังไงคะ
โดย thatsawan ส 11 ก.ค. 2020 11:33 am บอร์ด Programming - PHP
6
99
จ 13 ก.ค. 2020 11:04 pm โดย thatsawan
การเพิ่มกรอบจอโทรศัพท์มือถือบน Google Chrome
โดย natthanit.r2538 ส 11 ก.ค. 2020 10:41 am บอร์ด Share Knowledge
0
18
ส 11 ก.ค. 2020 10:41 am โดย natthanit.r2538
งานประจำวันที่ 11 กรกฏาคม 2563
โดย Phakakrong ส 11 ก.ค. 2020 9:22 am บอร์ด M105 - ผกากรอง กุสาวดี
3
24
ส 11 ก.ค. 2020 6:48 pm โดย Phakakrong
ถ้าต้องการเช็คค่าว่าง select ให้ alert ก่อนก่อนปุ่มอื่นๆ ทำยังไงได้บ้างคะ
โดย thatsawan ศ 10 ก.ค. 2020 4:18 pm บอร์ด JavaScript & Jquery Ajax
1
50
ศ 10 ก.ค. 2020 4:59 pm โดย tsukasaz
งานประจำวันที่ 10 กรกฏาคม 2563
โดย Phakakrong ศ 10 ก.ค. 2020 9:35 am บอร์ด M105 - ผกากรอง กุสาวดี
5
24
ศ 10 ก.ค. 2020 7:58 pm โดย Phakakrong
Google Sheet : วิธีการเปลี่ยนภาษา (ไทย เป็น อังกฤษ)
โดย Phakakrong พฤ 09 ก.ค. 2020 6:34 pm บอร์ด Share Knowledge
0
28
พฤ 09 ก.ค. 2020 6:34 pm โดย Phakakrong
มาลองใช้งาน Google Drive กันแบบฉบับง่ายๆ
โดย Phakakrong พฤ 09 ก.ค. 2020 4:08 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
29
พฤ 09 ก.ค. 2020 4:08 pm โดย Phakakrong
ข้อมูลไม่ขึ้นมาแสดง รบกวนช่วยดูโค้ดให้ทีคะ คือทำหน้าแบบฟอร์ม แล้วต้องการแก้ไขข้อมูลตามไอดี
โดย Jakkrit Saengngoenon พฤ 09 ก.ค. 2020 1:24 pm บอร์ด Programming - PHP
0
50
พฤ 09 ก.ค. 2020 1:24 pm โดย Jakkrit Saengngoenon
งานประจำวันที่ 9 กรกฏาคม 2563
โดย Phakakrong พฤ 09 ก.ค. 2020 9:40 am บอร์ด M105 - ผกากรอง กุสาวดี
1
28
พฤ 09 ก.ค. 2020 6:51 pm โดย Phakakrong
สรุปผลการเรียน Process help desk
โดย Phakakrong พ 08 ก.ค. 2020 7:05 pm บอร์ด M105 - ผกากรอง กุสาวดี
1
12
พฤ 09 ก.ค. 2020 10:29 am โดย Phakakrong
ISO 29110 คืออะไร มาตรฐานที่ให้การรับรองคุณภาพการบริหารงาน หรือผลิตภัณฑ์ซอร์ฟแวร์ มีขั้นตอนการขออย่างไหร่
โดย natthanit.r2538 พ 08 ก.ค. 2020 7:02 pm บอร์ด Microsoft Office Knowledge & line & Etc
1
41
พ 08 ก.ค. 2020 9:59 pm โดย UoIU112