表单嵌套frame/iframe
webDriver只能在一个页面上对元素识别和定位,对于frame/iframe表单内嵌页面上的元素无法直接定位,此时就需要通过switch_to.frame()方法将当前定位的主题切换为iframe表单的内嵌页面中。
内嵌表单格式:
<html>
<body>
...
<iframe id="x-URS-iframe" ...>
<html>
<body>
...
<input name="email" >
内嵌表单的操作:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.126.com")
driver.switch_to.frame('x-URS-iframe')
driver.find_element_by_name('email').clear()
driver.find_element_by_name('email').send_keys('llf123456')
driver.find_element_by_name('password').clear()
driver.find_element_by_name('password').send_keys('qq12345')
driver.find_element_by_id('dologin').click()
driver.switch_to.default_content()
driver.quit()
switch_to.frame() 默认可以直接取表单的id 或name属性
如果此时在进入多级表单的情况下,还可以通过switch_to.default_content()跳回最外层的页面
参考资料:http://www.testclass.net/selenium_python/more-iframe/