十三、Selenium之web页面多窗口切换

用到的方法
1、找到当前窗口名字:current_window_handle
2、找到所有窗口名字:window_handles
3、切换到指定窗口:switch_to.window('param')
param可以直接传current_window_handle,也可以传window_handles['索引']
示例代码如下:

import time

from selenium import webdriver

# 目标:打开马蜂窝,滑动到底部,点击加入马蜂窝,切换回马蜂窝旅游首页

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("http://www.mafengwo.cn/")
time.sleep(3)

windowjs = "window.scrollTo(0,document.body.scrollHeight)";
driver.execute_script(windowjs)

time.sleep(2)

driver.find_element_by_css_selector(
    '#footer > div > div.ft-info.clearfix > dl.ft-info-col.ft-info-about > dd:nth-child(8) > a.joinus.highlight.m_l_10').click()
time.sleep(2)

# 找到当前窗口字符串
current_window_handle = driver.current_window_handle
print(current_window_handle)
# 打印结果如下:CDwindow-9261D7256D30282307F99EB46F8B7EB0

# 找到所有的句柄,返回值为list
window_handles = driver.window_handles
print(window_handles)
# 打印结果如下:['CDwindow-DFA49C567DF5D53D90DEB13839D8BCB2', 'CDwindow-51BF3B6BBD164460376C806B808AE8DD']

# 切换到原有tab下
driver.switch_to.window(window_handles[0])
driver.quit()

Selenium 3+Python 3 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著

你可能感兴趣的:(十三、Selenium之web页面多窗口切换)