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