十三、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 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容