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 webdriver
import time
driver=webdriver.Chrome()
driver.get('http://ui.imdsx.cn/uitester/')
# 最大化浏览器
driver.maximize_window()
# 定位到页面顶部
js='window.scrollTo(0,0)'
driver.execute_script(js)
time.sleep(2)
# 点击打开一个新的tab
driver.find_element_by_css_selector('a[href="/new-index/"]').click()
# 获取所有的打开的tab
windowstabs=driver.window_handles
print(windowstabs)
# 获取当前tab
currenttab=driver.current_window_handle
print(currenttab)
# 切换到新tab
driver.switch_to.window(windowstabs[1])
driver.find_element_by_css_selector('#newtag').send_keys('12334')
#关闭当前tab
driver.close()
# 再切换到之前的tab
driver.switch_to.window(windowstabs[0])