如何使用硒来迭代并单击其文本相同的每个链接文本?

时间:2019-07-05 03:11:14

标签: python selenium web-crawler

我试图使用硒来爬行这个网站:

https://www.rtings.com/headphones/reviews/best/by-price/under-200

在此页底部,有一个可滚动的表,并且有一个链接的文本See Review,我试图用硒单击See Review

我使用了browser.find_element_by_link_text('See Review').click(),它成功地单击了第一个链接的文本。

当我尝试遍历每个See Review时,我使用browser.back()并再次单击See Review,但是它总是单击第一个链接的文本

如何遍历链接文本?

1 个答案:

答案 0 :(得分:0)

这是应该起作用的解决方案。

# wait for the page loading
WebDriverWait(driver,30).until(EC.presence_of_all_elements_located((By.LINK_TEXT,'See Review')))

# get number of See Review links
see_review_count = len(driver.find_elements_by_link_text('See Review'))

for review in range(see_review_count-1):
    WebDriverWait(driver, 30).until(EC.presence_of_all_elements_located((By.LINK_TEXT, 'See Review')))
    linkEle = driver.find_elements_by_link_text('See Review')[review]
    linkEle.location_once_scrolled_into_view
    linkEle.click()
    # do your logic here
    # XXXXXX
    # click on back
    driver.back()