【问题标题】:How to use selenium to iterate and click every link text that their text is the same?如何使用 selenium 迭代并单击其文本相同的每个链接文本?
【发布时间】:2019-07-05 03:11:14
【问题描述】:

我尝试使用 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(),它成功点击了第一个链接文本。

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

如何遍历链接文本?

【问题讨论】:

    标签: python selenium web-crawler


    【解决方案1】:

    这是应该可行的解决方案。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-27
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      相关资源
      最近更新 更多