Python 如何在selenium始终存在按钮的情况下停止单击同一按钮

Python 如何在selenium始终存在按钮的情况下停止单击同一按钮,python,selenium,Python,Selenium,我曾经遇到过一个问题,当我使用Selenium刮取多个页面时,只需单击“下一页”按钮并使用NoTouchElementException停止它 但我现在面对的url是元素始终存在,在最后一页中,如果我单击“下一页”按钮,它只会重新加载当前页 任何人都可以帮助解决如何停止单击同一按钮 items=driver.find_elements_by_class_name('item') while True: try: #click next page

我曾经遇到过一个问题,当我使用Selenium刮取多个页面时,只需单击“下一页”按钮并使用
NoTouchElementException
停止它

但我现在面对的url是元素始终存在,在最后一页中,如果我单击“下一页”按钮,它只会重新加载当前页

任何人都可以帮助解决如何停止单击同一按钮

items=driver.find_elements_by_class_name('item')
while True:
        try:
            #click next page
            driver.find_element_by_link_text('下一页').click()
            sleep(5)
            #scrpae data here
            items=driver.find_elements_by_class_name('item')

            for i in range(0, len(items)):

               results.append(items[i])
               print(items[i])
             
              
              
        except NoSuchElementException:
            
            break        
有关页面详细信息,请查看下图

[已编辑]

您可以通过在下一页链接中匹配当前页url和下一页url来解决此问题。 如果当前页面url与下一页链接中的url匹配,则它是最后一页。否则继续报废

您应该有一个存储当前页面URL的变量,当您单击selenium的下一个页面链接时,您将获得页面URL并与上一个页面URL匹配

我是这样说的:

url = "https://humkinar.com.pk/"
driver.get(url)
items=driver.find_elements_by_class_name('item')
current_page_url = ""
prev_page_url = url
while True:
    try:
        driver.find_element_by_link_text('下一页').click()
        current_page_url = driver.current_url
        if current_page_url != prev_page_url:
            time.sleep(5)
            items=driver.find_elements_by_class_name('item')
            for i in range(0, len(items)):
               results.append(items[i])
               print(items[i])
            prev_page_url = current_page_url
        else:
            break
    except NoSuchElementException:
        break
正如我在图片中看到的(我想您共享的图片是最后一页的),检查
中的
className==“disable”
break

更新:

items=driver.find_elements_by_class_name('item')
while True:
    try:
        #click next page
        next = driver.find_element_by_link_text('下一页')
        next.click()
        sleep(5)
        #scrpae data here
        items=driver.find_elements_by_class_name('item')

        for i in range(0, len(items)):

           results.append(items[i])
           print(items[i])

           break;        
       if(next.getAttribute('class') == 'disable'){
          throw new Exception()
       }

你能给我看一下代码供我们参考吗?提前谢谢!您可以从selenium web驱动程序获取当前url,如下所示
打印驱动程序。如果您想要完整的代码,我可以通过编辑您的代码发送给您。资源页面链接?您好,Yogendra Porwal先生,非常感谢您的回答,您是否介意告诉我为什么会出现以下错误:文件“”,第18行if(next.getAttribute('class'))=='disable'){^SyntaxError:invalid syntax===>您可以尝试运行此url此java语法请使用对python有效的
语法:)