窗口最大化、页面切换的另一种操作
# 基于 ActionChains 类的浏览器自动化交互
基于 ActionChains 类的浏览器自动化交互
基于 ActionChains 类的自动化交互案例:百度自动化搜索
窗口最大化
driver.maximize_window()
页面前进和后退
操作页面的前迚和后退功能:
driver.forward() #前进
driver.back() # 后退
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.implicitly_wait(3) # seconds
first_url = 'http://www.baidu.com/'
driver.get(first_url)
print(driver.title) # 第一个页面
driver.find_element_by_link_text("新闻").click()
driver.switch_to_window(driver.window_handles[0])
print(driver.title) # 第一个页面
#browser.switch_to_window(browser.window_handles[1])
#browser.title # 最后一个页面
time.sleep(2)
driver.back() # 从百度新闻后退到百度首页
print(driver.title) # 第一个页面
time.sleep(2)
driver.forward() # 百度首页前进到百度新闻
print(driver.title) # 第一个页面
time.sleep(2)
driver.quit()
运行结果
百度一下,你就知道
百度新闻——全球最大的中文新闻平台
百度一下,你就知道
百度新闻——全球最大的中文新闻平台
页面切换
一个浏览器肯定会有很多窗口,切换窗口的方法如下:
driver.switch_to.window(“this is window name”)
也可以使用 window_handles 方法来获取每个窗口的操作对象。例如:
for handle in driver.window_handles:
driver.switch_to_window(handle)
选项卡管理
通过执行 js 命令实现新开选项卡 window.open()
不同的选项卡是存在列表里 browser.window_handles
通过 browser.window_handles[0] 就可以操作第一个选项卡
import time
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
time.sleep(5)
print(browser.window_handles)
browser.execute_script('window.open()') # 打开新的窗口
print(browser.window_handles)
browser.switch_to.window(browser.window_handles[1]) # 切换到第二个窗口
browser.get('http://www.taobao.com')
time.sleep(5)
browser.switch_to.window(browser.window_handles[0]) # 切换到第一个窗口
print(browser.window_handles)
print(browser.title)
time.sleep(5)
browser.switch_to.window(browser.window_handles[1]) # 切换到第二个窗口
print(browser.title)
time.sleep(2)
browser.get('http://python.org') # 在第二个窗口进入新连接
time.sleep(2)
print(browser.title)
browser.quit()
厉害了,我现在觉得 js 很厉害
牛 ~
回帖内容已被屏蔽。