web自动化之切换iframe

一、内容
#ifram切换:
#切换iframe的三种方式
"""
1.下标
driver.switch_to.frame(0)

2.webelement对象 
loc=driver.find_element(By.NAME, "login_frame")
driver.switch_to.frame(loc)

3.name属性
driver.switch_to.frame("login_frame")

#退出iframe,回到主页面(浏览器第一次打开的页面)
driver.switch_to.default_content()
"""

二、代码实现:
#以qq邮箱为例:
# 导入selenium包
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by  import By

# 打开一个浏览器
# 1、启动chromedriver驱动程序
# 2、通过驱动程序,与chrome之间创建一个会话(会话Id)。打开chrome浏览器。
driver = webdriver.Chrome()

#调整为最大窗口:
driver.maximize_window()

#打开百度地址
driver.get("https://mail.qq.com/")
sleep(2)

 #方式一:
driver.switch_to.frame("login_frame")
sleep(2)
driver.find_element(By.XPATH,'//*[@id="u"]').send_keys("1049162286@qq.com")
sleep(2)
driver.find_element(By.XPATH,'//*[@id="p"]').send_keys("cr921212")
sleep(2)
e1=driver.find_element(By.XPATH,'//input[@id="login_button"]')
sleep(2)
e1.click()
driver.switch_to.default_content()
sleep(1)

# 方式二:
e2=driver.find_element(By.XPATH,'//iframe[@name="login_frame"]')
driver.switch_to.frame(e2)
sleep(2)
driver.find_element(By.XPATH,'//*[@id="u"]').send_keys("1049162286@qq.com")
sleep(2)
driver.find_element(By.XPATH,'//*[@id="p"]').send_keys("cr921212")
sleep(2)
e1=driver.find_element(By.XPATH,'//input[@id="login_button"]')
sleep(2)
e1.click()
driver.switch_to.default_content()
sleep(1)

# 方式三:
driver.switch_to.frame(1)
sleep(2)
driver.find_element(By.XPATH,'//*[@id="u"]').send_keys("1049162286@qq.com")
sleep(2)
driver.find_element(By.XPATH,'//*[@id="p"]').send_keys("cr921212")
sleep(2)
e1=driver.find_element(By.XPATH,'//input[@id="login_button"]')
sleep(2)
e1.click()
driver.switch_to.default_content()

 

posted @ 2023-03-02 23:26  然后呢。。。  阅读(156)  评论(0)    收藏  举报