selenium窗口操作以及使用selenium定位iframe内部标签元素

本文介绍使用Selenium进行Web自动化测试时如何操作iframe及处理多窗口切换。包括定位并切换iframe,以及如何在打开新窗口后进行窗口间的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 标签内部存在iframe,普通的方式无法直接定位到iframe内部的标签元素。需要切换

2. 一个浏览器对象,存在多个标签选项卡。需要切换。打开多个页面以后,不会自动的切换界面,因此需要通过判断来切换定位的窗口(每个窗口都有各自的编号)


定位iframe内部标签元素

登录QQ邮箱为列:


#import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait



driver = webdriver.Firefox()
driver.get('https://mail.qq.com/')
# frame()查找和定位iframe框架的方法(switch_to)
driver.switch_to.frame(driver.find_element_by_id('login_frame'))



driver.find_element_by_id('switcher_plogin').click()

username = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector('#u'))
pwd = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_css_selector('#p'))

username.send_keys('123')
pwd.send_keys('123')

selenium窗口操作


#import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait



driver = webdriver.Firefox()
driver.get('https://www.baidu.com/')


# 获取当前窗口的window
current_window = driver.current_window_handle
print(current_window, driver.title)

driver.find_element_by_link_text('新闻').click()
time.sleep(1)

current_window = driver.current_window_handle
print(current_window, driver.title)

driver.find_element_by_css_selector('.hdline0 .a3').click()
time.sleep(1)


***********切换窗口的过程*****************
current_window = driver.current_window_handle
#获取当前driver所定位的窗口
 print(current_window, driver.title)

# 获取当前driver打开的所有窗口window
windows = driver.window_handles
print(windows)

#遍历后判断当前定位的窗口与新打开的窗口不同是,切换到新打开的窗口
for win in windows:
    if current_window != win:
        #win是心得窗口编号
         driver.switch_to.window(win)
*************************************************


current_window = driver.current_window_handle
print(current_window, driver.title)


title = driver.find_element_by_class_name('h-title').text
print(title)


# 当前页面操作完毕,重新回到上一个页面 
driver.close()
# 关闭当前页
driver.switch_to.window(current_window)
time.sleep(3)# 休眠3秒

driver.close() # 关闭当前driver操作的窗口,其他窗口不会关闭。

driver.quit() # 将driver浏览器对象退出,所有相关联窗口都会关闭。

火狐浏览器设置下载时不弹出窗口

profile = webdriver.FirefoxProfile()

profile.set_preference(“browser.helperApps.neverAsk.saveToDisk”,”application/octet-stream”)

driver = webdriver.Firefox(Firefox_profile=profile)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值