selenium 提供了切换窗口以及浏览器的一些操作,方便用户对窗口的操控
浏览器:
driver.back() 回退
driver.forward() 前进
driver.refresh() 刷新
driver.close() 关闭一个窗口
driver.quit() 关闭所有窗口
窗口的句柄
driver.current_window_handle 获取窗口当前句柄
driver.window_handles 获取当前所有窗口的句柄
driver.switch_to_window(handle) 切换到句柄为handle的窗口
窗口切换函数
switch_window两窗口之间切换,需要记录now这个句柄,以方便切换,适用于两个窗口
def switch_window(driver, now):
all_handles = driver.window_handles #得到当前开启的所有窗口的句柄
for handle in all_handles:
if handle != now: #获取到与当前窗口不一样的窗口
driver.switch_to_window(handle) #切换
switch_window_by_title通过窗口的title进行切换,切换到为该title的窗口,适用于多窗口
def switch_window(self,windowname):
all_handles = self.driver.window_handles
for handle in all_handles:
driver.switch_to.window(handle) #切换到该句柄
if driver.title == windowname: #如果该窗口的title是windowname
driver.switch_to.window(handle) #切换
break #跳出循环,如果不是windowname,则继续循环
browser.py
#coding:utf-8
#!/usr/bin/env python
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("hello")
driver.find_element_by_id("su").click()
sleep(3)
driver.refresh()
sleep(5)
driver.back()
sleep(5)
driver.forward()
sleep(5)
driver.close()
该程序实现从百度搜索"hello",转到hello页面,然后再退回到baidu首页,再前进到hello搜索页
链接: link.
本文介绍如何使用Selenium WebDriver进行窗口切换。通过获取窗口句柄并利用switch_window方法,可以在多个窗口间灵活切换。示例代码展示了从百度搜索到结果页,再返回和前进的流程。
521

被折叠的 条评论
为什么被折叠?



