首页 > 解决方案 > 如何使用 selenium 迭代并单击其文本相同的每个链接文本?

问题描述

我尝试使用 selenium 爬取这个网站:

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

在这个页面的底部,有一个可滚动的表格,还有一个链接的文本See Review,我尝试使用 selenium 点击See Review

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

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

如何遍历链接文本?

标签: pythonseleniumweb-crawler

解决方案


这是应该工作的解决方案。

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

推荐阅读