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 pythonfrom selenium import webdriverfrom time import sleepdriver = 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搜索页
参考:
《Selenium2自动化测试实战》
《selenium python buildings release 2》