多个页面的处理
我们在打开网页的操作过程中,会不只打开一个网页,会有多个网页。那么多个网页我们是怎么处理的呢?
例子:
比如说我们百度 搜狗,点击打开搜狗,那么浏览器上面就有两个页面,现在的主页面是百度这个页面,我们还不能操作到搜狗的这个页面,这个时候我们就需要使用切换页面的来操作。切换前你需要获取到页面的handel,下面的代码就让我们来操作页面的切换
baidu2.PNG
from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
# ******************************************
# 百度 两个页面的之间的切换操作
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
# 输入法内容
driver.find_element_by_id("kw").send_keys("搜狗")
# 点击搜索
driver.find_element_by_id("su").click()
# 百度页面的 handle
main_page = driver.current_window_handle
time.sleep(2)
# 点击第一个结果 //*[@id="1"]/h3/a
driver.find_element_by_xpath('//*[@id="1"]/h3/a').click()
time.sleep(2)
# 获取所有的页面包括百度和Sogou,这个时候有两个页面
all_page = driver.window_handles
time.sleep(2)
for one_page in all_page:
if one_page!=main_page:
driver.switch_to.window(one_page)
print(driver.title)
# ******************************************
结果:
C:\Users\myuser\mail_app\Scripts\python.exe D:/简书/selenium/0001.py
搜狗搜索引擎 - 上网从搜狗开始
Process finished with exit code 0
多个页面切换就是这样,可以举一反三,如果是3个或者3个以上的页面呢?
网友评论