[ปัญหา] การวนลูปใน selenium

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Panchalee
PHP Super Member
PHP Super Member
โพสต์: 296
ลงทะเบียนเมื่อ: 30/10/2017 10:10 am

[ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย Panchalee »

ต้องการให้ selenium เลือกหัวข้อตามที่ต้องการ ในที่นี้ต้องการให้เลือกบทความ
เมื่อเลือกบทความเสร็จ ต้องการกดเข้าไปที่หมวดที่ต้องการ เช่น "ความรู้ทั่วไป" แล้วให้ย้อนกลับออกมาไปกดที่หมวด "จัดการบริหาร โปรเจ็คด้วย DotProject " ให้ทำไปจนครบทุกหมวด
ตัวอย่างรูป
img1.png
ลองใช้โค้ดตาม การเขียนวน loop ของ selenium

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

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

driver.get("https://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()
แต่ลองนำมาปรับเปลี่ยนโค้ดตัวเองแล้ว ยังไม่สามารถคลิกที่หัวข้อบทความได้ ขอคำแนะนำด้วยค่ะ


ตัวอย่างโค้ดที่ทำ

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

from selenium import webdriver
browser = webdriver.Firefox()
#เปิดลิ้งค์เข้า mindphp
browser.get('https://www.mindphp.com/')
time.sleep(01)

weblink = browser.find_elements_by_css_selector('li.item-110 deeper parent dropdown dropdown-large open')
for w in range(len(weblink)):
    link = browser.find_elements_by_css_selector('li.item-110 deeper parent dropdown dropdown-large open')
allweb = link[w].get_attribute("href")
browser.get(allweb.encode('utf-8'))
browser.back()
ตัวอย่างรูปที่แสดงโค้ด
img2.png
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: [ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

browser.find_elements_by_css_selector >> หมายถึงต้องเรียกเเบบ CSS ป่าว เช่น (.classname)

print weblink ได้อะไรออกมา
ภาพประจำตัวสมาชิก
Panchalee
PHP Super Member
PHP Super Member
โพสต์: 296
ลงทะเบียนเมื่อ: 30/10/2017 10:10 am

Re: [ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย Panchalee »

thatsawan เขียน:browser.find_elements_by_css_selector >> หมายถึงต้องเรียกเเบบ CSS ป่าว เช่น (.classname)

print weblink ได้อะไรออกมา
print weblink แล้วไม่ได้อะไรออกมาเลยค่ะ
ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 28508
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: [ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย thatsawan »

ถ้างั้นต้องไปแก้ไขส่วนนั้นก่อน ต้องได้ค่ามาก่อน ถึงจะไป loop
rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

Re: [ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย rangsan »

ถ้าเกิดว่าต้องการให้ selenium คลิกเข้าไปที่หมวดความรู้

โค้ดโดยรวม

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

link_topic = driver.find_elements_by_css_selector('li.span3')
print(link_topic)
for x in range(len(link_topic)):
    link_topic = driver.find_elements_by_css_selector('li.span3')
    all = link_topic[x].get_attribute("href")
    driver.get(all.encode('utf-8'))
    driver.back()
ภาพของ หน้าเว็บ
ภาพที่ 1
total_topic.png
ภาพที่ 2
topic.png
ต้องใช้ Class ตัวไหนที่จะใส่ไปใน

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

link_topic = driver.find_elements_by_css_selector('')
It’s never too late to start again.
ภาพประจำตัวสมาชิก
nuattawoot
PHP VIP Members
PHP VIP Members
โพสต์: 2561
ลงทะเบียนเมื่อ: 05/06/2017 9:34 am

Re: [ปัญหา] การวนลูปใน selenium

โพสต์ที่ยังไม่ได้อ่าน โดย nuattawoot »

ตัวอย่าง กด Path และ นับจำนวนโพสต์

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

search1 = driver.find_element_by_link_text('บทความ').click()
search2 = driver.find_element_by_link_text('ความรู้ทั่วไป').click()

countRow3 = len(driver.find_elements_by_xpath(
    "//div[@class='category-list']//table[@class='category table table-striped table-bordered table-hover']/tbody/tr"))

print (countRow3)
First Bug Love you
รูปภาพ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 102