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

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

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

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

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

โพสต์โดย Panchalee » 30/11/2017 3:20 pm

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


ลองใช้โค้ดตาม การเขียนวน loop ของ selenium

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

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()


แต่ลองนำมาปรับเปลี่ยนโค้ดตัวเองแล้ว ยังไม่สามารถคลิกที่หัวข้อบทความได้ ขอคำแนะนำด้วยค่ะ


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

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

from selenium import webdriver
browser = webdriver.Firefox()
#เปิดลิ้งค์เข้า mindphp
browser.get('http://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
โพสต์: 11829
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

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

โพสต์โดย thatsawan » 30/11/2017 3:25 pm

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 » 01/12/2017 3:20 pm

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

print weblink ได้อะไรออกมา


print weblink แล้วไม่ได้อะไรออกมาเลยค่ะ

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

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

โพสต์โดย thatsawan » 01/12/2017 3:24 pm

ถ้างั้นต้องไปแก้ไขส่วนนั้นก่อน ต้องได้ค่ามาก่อน ถึงจะไป loop

rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

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

โพสต์โดย rangsan » 09/05/2018 11:44 am

ถ้าเกิดว่าต้องการให้ 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
โพสต์: 2076
ลงทะเบียนเมื่อ: 05/06/2017 9:34 am

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

โพสต์โดย nuattawoot » 09/05/2018 2:24 pm

ตัวอย่าง กด 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
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 4 และ บุคคลทั่วไป 0 ท่าน