Tags:
Forums: 

สวัสดีครับ คือผมต้องการเรียนรู้การใช้ selenium ในการคลิกลิ้งค์รายการเพลงในยูทูปที่ผมสามารถใช้เสียงในการค้นหาครับ
ผมไปศึกษาของต่างชาติมาหลายวัน ก็ฟังไม่ค่อยรู้เรื่องเลยครับ

Get latest news from Blognone
By: idxn
iPhoneAndroidUbuntu
on 18 December 2017 - 10:26 #1024188

คุณ Jackkey ติดตรงไหนเหรอครับ คือผมไม่มีความรู้ในเรื่อง voice recognition ละนะ แต่เรื่อง selenium สอบถามได้ครับ

By: Jackkey on 18 December 2017 - 22:49 #1024290 Reply to:1024188

if txt.find("ค้นหา") == 0:
s = txt.split("ค้นหา")
a = str(s[1])
a = s[1]
a = a.replace(',', '')
webbrowser.get('windows-default').open_new_tab('https://www.youtube.com/results?search_query=%s' % a)
if txt.find("รายการที่ 1") == 0:****
driver.navigate()***
elif txt.find("ย้อนกลับ") == 0:
driver..back()
elif txt.find("ปิด") == 0:
** driver.close()

คือผม ไม่สามารถใช้คำสั่งเสียงในการกดเลือกรายการวีดีโอที่ค้นหาได้อ่ะครับ ตรงเครื่องหมาย ** ข้างต้นนี้อ่ะครับ คือผมไม่ค่อยรู้จักโครงสร้าง ของ selenium ผมกำลังศึกษาคร่าว ๆ จากเว็บไวต์นี้ครับ http://www.mindphp.com/forums/viewtopic.php?f=16&t=43896
ขนาดผมจะใช้ driver.get("https://www.youtube.com/results?search_query=%s " % a) ยังไม่ถูกเลยครับ
จึงจำเป็นต้องใช้ module webbrowser ไปก่อนครับ
ตรงที่ผมทำเครื่องหมาย ** ไว้ โปรแกรมมันแจ้งว่า NameError: name 'driver' is not defined ทั้งที่ผมก็เรียนใช้งาน module แล้วนะครับ
เลยอยากถามผู้เชี่ยวชาญและผู้รู้เกี่ยวกับ selenium ครับ

By: idxn
iPhoneAndroidUbuntu
on 19 December 2017 - 10:37 #1024331

driver ต้อง init มาก่อนครับ ตย.จาก selenium unofficial doc ก็ตามนี้เลย
http://selenium-python.readthedocs.io/getting-started.html#simple-usage

from selenium import webdriver

driver = webdriver.Firefox() #อันนี้ก็เปลี่ยนไปตาม browser ที่จะเปิดครับ
driver.get("http://www.python.org")
assert "Python" in driver.title

By: Jackkey on 20 December 2017 - 01:17 #1024489 Reply to:1024331

อ๋อ ได้แล้วครับ ขอบพระคุณมากเลยครับ ผมขอคำแนะนำสำหรับความช่วยเหลือครั้งสุดท้ายด้วยครับ คือว่า เมื่อผมทำการค้นหารายการวีดีโอด้วยเสียงในยูทูปแล้ว ผมจะทำการเล่นวีดีโอที่ค้นหาได้อย่างไรครับ เพราะลิ้งค์ url ของแต่ละวีดีโอ มันไม่ตายตัวใช่ไหมล่ะครับ เช่น ผมค้นหาว่า คำแพง แล้วผมจะกดเล่นวีดีโอรายการที่ 3 มันจะใช้คำสั่ง selenium ว่าอย่างไรครับ ทำนองนี้หรือป่าวครับ driver.get("ytd-list....") ทำนองนี้หรือป่าวครับ เพราะผมเคยเห้นโปรแกรม JARVIS ที่สามารถสั่งการเป็นภาษาไทยได้อ่ะครับ

By: idxn
iPhoneAndroidUbuntu
on 22 December 2017 - 15:12 #1024893 Reply to:1024489

ใช้ประมาณนี้ก็ได้ครับ

index = 2 #index = วีดีโอรายการที่ 3
elem = driver.find_elements_by_css_selector("#video-title")[index]
elem.click()

หรือจะ chain ทีเดียวไปเลยก็ได้

driver.find_elements_by_css_selector("#video-title")[2].click()

By: Jackkey on 1 January 2018 - 00:04 #1026191 Reply to:1024893

ขอบพระคุณอย่างสูงมากเลยนะครับ เหมือนผมจะก้าวใกล้ความสำเร็จอีกขั้นหนึ่งแล้ว TT