多窗口、句柄
有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了。获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了。
- 获取当前窗口句柄
driver.current_window_handle
注意:后面没有()
from selenium import webdriver
driver=webdriver.Chrome()
url='https://www.hao123.com/?tn=98372624_hao_pg'
driver.get(url)
h=driver.current_window_handle
print(h)
-
获取所有句柄
driver.window_handles() -
切换句柄
方法一:
循环判断是否与首页句柄相等
如果不等说明是新页面的句柄
获取新页面句柄后,可以切换到新打开的页面上
打印新页面的title,看是否切换成功方法二:
直接获取all_h(获取所有句柄时得到的)这个list数据里第二个hand的值:all_h[1]
关闭新窗口,切回主页
关闭新窗口:driver.close()
切回主页:driver.switch_to.window(h)
from selenium import webdriver
driver=webdriver.Firefox()
url='http://bj.ganji.com/'
driver.get(url)
driver.implicitly_wait(5)
h=driver.current_window_handle
print(h)
driver.find_element_by_link_text("二手车").click()
all_h=driver.window_handles
print(all_h)
driver.switch_to.window(all_h[1])
print(driver.title)
driver.close()
driver.switch_to.window(h)
print(driver.title)