Selenium中的iframe和windows的切换

iframe切换

from selenium import webdriver
import os,time

driver = webdriver.Firefox()
fire_path = 'file:///' + os.path.abspath('frame.html') #调用本地的文件
driver.get(fire_path)
#如果页面有多个frame表单,该如何切换呢
driver.switch_to_frame('if') #可以直接写表单id或name

#或者用如下定位方法进入

xp = driver.find_element_by_xpath('///iframe[@id="if"]') #使用xpath切换iframe
driver.switch_to_frame(xp) #使用xpath切换iframe

#定位元素,进行操作
driver.find_element_by_id("kw").click()

#如果需要切换到别的iframe,需要先退出
#表单退出到最外层 
switch_to_default_content()
#返回上一级表单
driver.switch_to_parent_content()

windows切换

#coding=utf-8
from selenium import webdriver
import time
#访问百度
driver=webdriver.Firefox()
driver.get("http://www.baidu.com")
#获取百度搜索窗口句柄
search_windows=driver.current_window_handle
 
driver.find_element_by_link_text(u'登录').click()
driver.find_element_by_link_text(u'立即注册').click()<br>
#获取打开所有窗口句柄
all_handles=driver.window_handles
#进入注册窗口
for handle in all_handles:
    if handle !=search_windows:
        driver.switch_to_window(handle)
        print("now regester window")
        driver.find_element_by_id('TANGRAM__PSP_3__userName').send_keys('namejianjain')
        time.sleep(3)
for handle in all_handles:
    if handle==search_windows:
        driver.switch_to_window(handle)
        print("now search window")
        time.sleep(3)
        driver.find_element_by_id("TANGRAM__PSP_4__closeBtn").click()
        time.sleep(3)
        driver.find_element_by_id('kw').send_keys('selenium')
        driver.find_element_by_id('su').click()
        time.sleep(5)
         
driver.close()

步骤1:获取窗口句柄

windows = driver.window_handles # 返回的是一个句柄列表,列表排序为当前窗口顺序

步骤2:切换到新窗口

driver.switch_to.window(windows[-1]) # 新窗口通常为最后一个,若为其他位置则自行处理
————————————————
版权声明:本文为CSDN博主「Tester_muller」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Tester_muller/article/details/127070402

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值