当selenium控制的浏览器打开多个标签页时,如何控制浏览器在不同的标签页中进行切换呢,分为以下两步:
- 获取所有标签页的句柄
- 利用窗口句柄切换到句柄指向的标签页
#1. 获取当前所有的标签页的句柄构成的列表
current_windows = driver.window_handles
#2. 根据标签页句柄列表索引下标进行切换
driver.switch_to_window(current_windows[0])
from selenium import webdriver
url = 'https://jn.58.com'
driver = webdriver.Chrome()
driver.get(url)
#点击租房按钮
driver.find_element_by_xpath('/html/body/div[3]/div[1]/div[1]/div/div[1]/div[1]/span[1]/a').click()
print(driver.window_handles)
#切换句柄
driver.switch_to.window(driver.window_handles[1])
print(driver.current_url)
#爬取切换后的页面内容
el = driver.find_elements_by_xpath('/html/body/div[7]/div[2]/ul/li/div[2]/h2/a')
print(len(el))