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