学习Selenium元素定位--多表单切换

  在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位。这时就需要通过switch_to.frame()方法将当前定位的主体切换为frame/iframe表单的内嵌页面中。

#!/usr/bin/env/ python
# coding:utf-8
# Date:2019/1/10
from selenium import webdriver
import time
#打开浏览器-Chrome
driver = webdriver.Chrome()
#进入网页
driver.get('https://mail.126.com')
#等待10s
time.sleep(10)

# driver.switch_to.frame('x-URS-iframe')

# xf = driver.find_element_by_xpath('//*[@id="x-URS-iframe*"]')
# driver.switch_to.frame(xf)
#定位iframe元素
xf = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(xf)
#清空email栏位
driver.find_element_by_name('email').clear()
#输入登陆名
driver.find_element_by_name('email').send_keys('username')
#清空密码栏位
driver.find_element_by_name('password').clear()
#输入密码
driver.find_element_by_name('password').send_keys('password')
#点击登陆按钮
driver.find_element_by_id('dologin').click()
driver.switch_to.default_content()

time.sleep(5)

driver.quit()

由于无法直接使用 driver.switch_to.frame('x-URS-iframe') 进行定位iframe表单,使用xpath也无法定位iframe元素,所以最终参照使用了find_element_by_tag_name

进行定位。

原文地址:https://www.cnblogs.com/ruichow/p/10253735.html