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

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 แก้ตรงไหนครับ'}

 

             

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
คำว่า extension ผิดค่ะ
โดย numtan5839 ศ 06 ธ.ค. 2019 8:17 pm บอร์ด MindPHP News & Feedback
1
8
ส 07 ธ.ค. 2019 1:20 am โดย mindphp
ทำอย่างไรให้ google slide นั้นสามารถแสดงหน้าที่เรากำหนดได้ ผ่าน url ครับ
โดย jamepiyawat ศ 06 ธ.ค. 2019 5:23 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
10
ศ 06 ธ.ค. 2019 5:23 pm โดย jamepiyawat
การทำนายข้อมูลแบบ Dicision Tree ด้วยโปรแกรม Weka
โดย Grammanano ศ 06 ธ.ค. 2019 5:16 pm บอร์ด Share Knowledge
0
8
ศ 06 ธ.ค. 2019 5:16 pm โดย Grammanano
ทำไม แปลงวันเดือนปีเป็นวันที่ ตามระบบของ Joomla แล้ววันถึงถอยไปวันหนึ่งครับ
โดย jamepiyawat ศ 06 ธ.ค. 2019 3:23 pm บอร์ด Joomla Development
1
13
ศ 06 ธ.ค. 2019 4:51 pm โดย thatsawan
คำสั่งพื้นฐานในการใช้ Matlab เพื่อการทำ Image Processing
โดย Grammanano ศ 06 ธ.ค. 2019 3:20 pm บอร์ด Share Knowledge
0
7
ศ 06 ธ.ค. 2019 3:20 pm โดย Grammanano
Introducing the Module Weather Forcecast.
โดย numtan5839 ศ 06 ธ.ค. 2019 2:34 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
10
ศ 06 ธ.ค. 2019 3:24 pm โดย numtan5839
เขียนบทความ แต่พอ save แล้วเนื้อหาไม่แสดง
โดย numtan5839 ศ 06 ธ.ค. 2019 2:30 pm บอร์ด MindPHP News & Feedback
0
10
ศ 06 ธ.ค. 2019 2:30 pm โดย numtan5839
จะทำอย่างไรให้ดึงข้อความ 10 ตัวท้ายได้ครับ
โดย jamepiyawat ศ 06 ธ.ค. 2019 11:39 am บอร์ด Programming - PHP
3
20
ศ 06 ธ.ค. 2019 2:04 pm โดย jamepiyawat
จะทำอย่างไรให้ Plugin Content Change Log แสดงข้อความด้านบนได้ ครับ
โดย jamepiyawat ศ 06 ธ.ค. 2019 11:03 am บอร์ด Joomla Development
1
17
ศ 06 ธ.ค. 2019 7:42 pm โดย thatsawan
งานประจำวันที่ 6 ธันวาคม 2562
โดย Grammanano ศ 06 ธ.ค. 2019 9:43 am บอร์ด M098 - อนงค์นาท ไฝขาว
2
13
ส 07 ธ.ค. 2019 1:45 am โดย mindphp
งานประจำวันที่ 6 ธันวาคม 2562
โดย numtan5839 ศ 06 ธ.ค. 2019 9:34 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
10
27
ศ 06 ธ.ค. 2019 7:42 pm โดย numtan5839
เปิดตัวเว็บบอร์ด รูปแบบใหม่ ของเรา มีอะไรมาใหม่ ลองมาดูกัน เราใช้ phpBB 3.2 นะ
โดย mindphp พ 04 ธ.ค. 2019 7:44 pm บอร์ด MindPHP News & Feedback
1
34
พ 04 ธ.ค. 2019 8:03 pm โดย thatsawan
วิธีการ ใช้งาน Jquery คำนวณเลขฐาน 2 8 16
โดย Ittichai_chupol พ 04 ธ.ค. 2019 6:58 pm บอร์ด Jquery & Ajax Knowledge
0
949
พ 04 ธ.ค. 2019 6:58 pm โดย Ittichai_chupol
การใช้บอร์ด Arduino ต่อกับเซ็นเซอร์สี TCS3200
โดย Grammanano พ 04 ธ.ค. 2019 6:54 pm บอร์ด Share Knowledge
0
15
พ 04 ธ.ค. 2019 6:54 pm โดย Grammanano
คำสั่ง cmd และโปรแกรมที่ใช้สำหรับการเขียน python
โดย Grammanano พ 04 ธ.ค. 2019 6:02 pm บอร์ด M098 - อนงค์นาท ไฝขาว
3
18
ส 07 ธ.ค. 2019 1:41 am โดย mindphp
Google One เปิดสำรองข้อมูลบนระบบ Android
โดย noppadonsk พ 04 ธ.ค. 2019 5:42 pm บอร์ด Share Knowledge
0
19
พ 04 ธ.ค. 2019 5:42 pm โดย noppadonsk
แคปหน้าจอเว็ป แล้วแปลงเป็นไฟล์ PDF บนChrome
โดย noppadonsk พ 04 ธ.ค. 2019 5:28 pm บอร์ด Share Knowledge
0
17
พ 04 ธ.ค. 2019 5:28 pm โดย noppadonsk
วิธี ซ่อนไฟล์ใน Google Drive หายังไงก็ไม่เจอ
โดย noppadonsk พ 04 ธ.ค. 2019 5:16 pm บอร์ด Share Knowledge
0
19
พ 04 ธ.ค. 2019 5:16 pm โดย noppadonsk
รู้รึยังการใส่เพลงใน Google Slides
โดย noppadonsk พ 04 ธ.ค. 2019 4:41 pm บอร์ด Share Knowledge
0
15
พ 04 ธ.ค. 2019 4:41 pm โดย noppadonsk
คู่มือการเลือกใช้ไฟล์สำหรับงานออกแบบ
โดย noppadonsk พ 04 ธ.ค. 2019 4:20 pm บอร์ด Graphic design
0
14
พ 04 ธ.ค. 2019 4:20 pm โดย noppadonsk