我在Python中使用Selenium。我必须访问一个URL,获取内容,然后点击下一个按钮访问下一个页面,并重复相同的操作。有些原因是我不能递归地完成它,仍然在访问第一页,这是有意义的。我的代码如下:
def start():
url = ‘http://example.com/?page=1'
if driver.find_element_by_class_name('page-link'):
start()
如何实现?我应该获取第一页的内容,将数据传递给其他方法,然后递归调用它吗?
您需要获取新的URL,并将其作为参数传递到start函数中。你每次都会在第一行重置url。
我认为selenium不重新加载相同的url可能是明智的,所以您可能只需要执行以下
def start(traversed=False):
if not traversed:
url = "http://example.com/?page=1"
if driver.find_element_by_class_name('page-link'):
start(traversed=True)
或
def start(url=None):
if not url:
url = "http://example.com/?page=1"
if driver.find_element_by_class_name('page-link'):
start(url=driver.current_url) #browser.current_url