selenium webdriver (6) -- iFrame

selenium提供了frame切换,但不像窗口,提供句柄,固然为了可以切换,它提供了就不是一个函数python

driver.switch_to_frame("frameName")                      #切换到frameName里能够是name, locator,id
driver.switch_to_frame("frameName.0.child")
driver.switch_to_default_contents()                      #切换出当前frame

咱们常常定位不到元素,明明能够看到,却定位不到,大多跟frame有关,如登陆163邮箱页面web

from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get('http://mail.163.com')

print 'Before login-------------------------------------'

#print current page title
title = driver.title
print title

now_url = driver.current_url
print now_url


driver.switch_to_frame("x-URS-iframe")                          #很是容易遗忘这个frame
driver.find_element_by_name("email").clear()
driver.find_element_by_name("email").send_keys("XXXX")
driver.find_element_by_name("password").clear()
driver.find_element_by_name("password").send_keys("XXXXXX")
driver.find_element_by_id("dologin").click()
time.sleep(10)

print 'After login --------------------------------------'
# print title again
title = driver.title
print title

#print url again
now_url = driver.current_url
print now_url

#print  login user
user = driver.find_element_by_id("spnUid").text
print user


driver.close()

同时咱们还会遇到这么一个场景,一个页面由两块组成,一侧是sidebar-frame, 另外一侧是content-frame,此时你须要先定位一个元素在sidebar-frame中,随后你又要定位到另外一个content-frame中的元素,这时你不能直接定位,而须要先切换出以前进入的frame再进入到所要定位元素的frame,再定位元素ide

driver.switch_to_frame("sidebar_frame")
driver.find_element_by_id("network")
driver.switch_to_default_contents()
driver.switch_to_frame("content_frame")
driver.find_element_by_id("interface")

参考:函数

《Selenium2自动化测试实战》测试

《selenium python buildings release 2》ui

相关文章
相关标签/搜索