python+selenium 对于iframe的切入切出
# coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys import time import os mydriver=webdriver.Firefox() mydriver.get("http://www.126.com/") time.sleep(1) username = 'username' pwd = 'password' mydriver.switch_to.frame(mydriver.find_element_by_id('x-URS-iframe')) # 切入 time.sleep(3) mydriver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/form/div/div[1]/div[2]/input").send_keys(username) time.sleep(1) mydriver.find_element_by_xpath("//form[@id='login-form']//div[@class='m-container']//input[@name='password']").send_keys(pwd) time.sleep(2) mydriver.find_element_by_xpath("//form[@id='login-form']//div[@class='m-container']//div[@class='f-cb loginbox']/a").click() time.sleep(5) mydriver.switch_to_default_content() # 切出 nexttitle = mydriver.title print(nexttitle)
1.首先对于iframe结构的网页 要先用 switch_to.frame 切入 iframe 才能获得其中的元素。
2.当要获取 iframe 外部 或者 跳转了页面 也要 switch_to_default_content() 切出 iframe 。如果不切出,最后一个print 打印会报 “死对象” 错误,原因就是还没有切出 iframe。