Python——Windows切换、frame切换

一、Windows切换

       一百度首页的各个窗口为例:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 获取当前的window对象
current_window = driver.current_window_handle
# 获取当前网页编号 和 网页标题
print(current_window,driver.title)
driver.find_element_by_name('tj_trnews').click()

news = WebDriverWait(driver,10).until(lambda driver : driver.find_element_by_css_selector('.hdline0.a3'))
time.sleep(3)
# news = driver.find_element_by_css_selector('.hdline0.a3').text
# print(news)
news.click()
# 获取所有的窗口
all_windows = driver.window_handles
print(all_windows)
for window in all_windows :
    if window != current_window :
        # switch 切换 to 到 新的window
        driver.switch_to.window(window)
title = driver.find_element_by_tag_name('h1').text
# title = driver.find_element_by_css_selector('.text_title h1').text
WebDriverWait(driver,10).until(lambda driver : title.is_displayed())
print(title)
# 关闭浏览器
driver.quit()
# 关闭窗口
driver.close()

# 切换到窗口下面,获取文本
driver.switch_to.window(current_window)
print(driver.find_element_by_css_selector('#footer span').text

二、frame切换

       先建两个html文件,inframe.html和outframe.html




    
    Title


    

外层浏览器




    
    Title


    

内置浏览器

       在上边外层浏览器和内置浏览器进行切换

from selenium import webdriver
import os
driver = webdriver.Firefox()
# 找到外层浏览器html文件的路径
driver.get('file://' + os.path.abspath('outframe.html'))
# 通过外层浏览器的id进行跳转
driver.switch_to.frame(driver.find_element_by_id('out'))
# 跳转到内层浏览器
driver.switch_to.frame('in')

# 在浏览器中搜索selenium
driver.find_element_by_id('kw').send_keys('selenium')
# 找到点击按钮的id,进行模拟点击
driver.find_element_by_id('su').click()

 

你可能感兴趣的:(Python)