多变单(一个窗口上) 在一个页面1中可以嵌套另外一个页面,如frame/iframe技术,这是现在很多web应用中使用的一种方式,wedriver对象只能在一个面(外层页面)中定位元素 需要一种driver对象从外层切换到内层使用,才能对内层对象进行处理 方法:webdriver中提供apl方法:switch_to.frame():将driver对象切换frame表单进行处理
'''
知识点:switch_to.frame():将driver对象切换到farme表单进行处理
需求:1、打开腾讯首页:http://www.qq.com
2、点击邮箱图片,跳转到登录页面
3、输入用户名
4、输入密码
5、点击登录
6、关闭浏览器
'''
# 导包
from selenium import webdriver
import time
# 打开浏览器,窗口最大化
driver = webdriver.Chrome()
driver.maximize_window()
# 打开腾讯首页
driver.get("http://www.qq.com")
time.sleep(2)
# 点击qq图片
driver.find_element_by_xpath('//*[@id="top-login"]/div[2]/a').click()
time.sleep(2)
# 跳转到邮箱登录页面
handles=driver.window_handles
driver.switch_to.window(handles[1])
time.sleep(2)
# 选中iframe
driver.switch_to.frame("login_frame")
driver.find_element_by_link_text("帐号密码登录").click()
time.sleep(2)
# 点击帐号登录
driver.find_element_by_xpath('//*[@id="u"]').send_keys("")
driver.find_element_by_xpath('//*[@id="p"]').send_keys("")
time.sleep(2)
# 点击登录
driver.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(5)
# 退出
driver.quit()