selenium爬取iframe内容的方法

写某网站自动登录脚本的时候发现,登录组件是用iframe拉起来的,分别尝试了:

  • 复制xpath到爬虫脚本driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[4]/i').click()
  • 选取唯一的class名driver.find_element_by_class_name('input-login').click()

均抓取不到元素,记录下解决过程。

对于iframe套的表单要抓取元素需要多一个步骤:

  1. 首先抓取iframe元素
  2. 然后使用driver提供的switch_to_frame函数
  3. 之后再爬取iframe内的元素。

代码示例如下:

#start
driver.get(url=login_url)
driver.implicitly_wait(3)
#打开iframe页面
driver.find_element_by_class_name('btn').click()
driver.implicitly_wait(3)
# iframe处理
iframe = driver.find_element_by_id('UDBSdkLgn_iframe')
driver.switch_to_frame(iframe)
#抓取元素
driver.find_element_by_class_name('input-login').click()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容