在没有更多页面后中断循环Python

时间:2019-05-05 14:55:26

标签: python selenium

我正在通过Shopify中的订单进行分页。一旦到达最后一页,我想跳出循环。我用来单击以进行分页的按钮仍然处于活动状态,并且在最后一页上可以单击,唯一不同的是它具有“禁用”属性。通常,我会寻找“下一个”按钮,如果不存在,则循环会中断。不知道在这种情况下该怎么办。

这是我知道的无效代码。

<mat-card-content>
    Die Leistung muss insgesamt 100 sein! Momentane Leistung: {{sum}}
</mat-card-content>

按钮HTML

while True:
    links = [link.get_attribute('href') for link in driver.find_elements_by_xpath("//*[@testid='Item-Content']/div[2]/div/div/span/span/a")]

    try:
        driver.find_element_by_xpath('//*[@id="AppFrameMain"]/div/div/div[2]/div/div[1]/div/div/div[3]/nav/span[2]/button').click()
        time.sleep(5)
    except:
        pass

2 个答案:

答案 0 :(得分:0)

这是您应该使用的逻辑。

    while True:
    # your logic goes here
    links = [link.get_attribute('href') for link in
           driver.find_elements_by_xpath("//*[@testid='Item-Content']/div[2]/div/div/span/span/a")]
    # exist loop if next button is disabled
    if not(driver.find_element_by_xpath("//button[@aria-label='Next']").is_enabled()):
        break
    else:
        driver.find_element_by_xpath("//button[@aria-label='Next']").click()

答案 1 :(得分:0)

尝试以下代码。检查长度计数> 0,然后断开,否则单击。

 while True:
    if len(driver.find_elements_by_css_selector('button[aria-label="Next"][disabled]'))>0 :
       break
    else:
        driver.find_elements_by_css_selector('button[aria-label="Next"]')[0].click()