webdriver.get(url)方法打开网页会直接在当前标签页打开,造成内存问题(被覆盖的网页不会被系统回收
所以需要在新标签页打开新的页面,然后关闭之前的标签页(释放先前页面占用的内存
(否则长时间运行,程序就会因为内存不足而崩溃
# 获得链接href = post_list[i].get_attribute('href')# 在新的标签页打开链接driver.execute_script(f'window.open("{href}", "_blank");')# 关闭当前标签页driver.close()# 关闭所有标签页(退出浏览器driver.quit()
def open_url(url):driver.execute_script(f'window.open("{url}", "_blank");')driver.switch_to.window(driver.window_handles[0])driver.close()driver.switch_to.window(driver.window_handles[0])
from selenium import webdriverimport timedriver=webdriver.Chrome()driver.get('http://ui.imdsx.cn/uitester/')# 最大化浏览器driver.maximize_window()# 定位到页面顶部js='window.scrollTo(0,0)'driver.execute_script(js)time.sleep(2)# 点击打开一个新的tabdriver.find_element_by_css_selector('a[href="/new-index/"]').click()# 获取所有的打开的tabwindowstabs=driver.window_handlesprint(windowstabs)# 获取当前tabcurrenttab=driver.current_window_handleprint(currenttab)# 切换到新tabdriver.switch_to.window(windowstabs[1])driver.find_element_by_css_selector('#newtag').send_keys('12334')#关闭当前tabdriver.close()# 再切换到之前的tabdriver.switch_to.window(windowstabs[0])
