selenium --iframe页面处理

一、前提

  要进行iframe 切换操作首先是要判断操作元素是否存在iframe 里面。

  判断方法: F12-elements 定位任意的一个元素,都会显示出它的绝对路径。如果绝对路径里有iframe 或者2个html标签,则操作元素存在iframe里。

  注意:即使是再iframe 里面,F12也是可以定位到的。但是在代码里面。如果不切换到iframe的html 当中,那使用find_element 永远也找不到元素。

二、原理

  操作元素在iframe 中,必须要先切换到iframe当中,然后进行元素定位操作。

三、操作方法

1)  如何切换到iframe 里

  1.找到要切换的iframe  ----可以通过下标/name属性/webElement 对象

  2.切换到iframe: driver.switch_to.iframe(第一步拿到的iframe )

  3.切换完成,以iframe 当中的html 作为主html(当前操作的html)。

2)从iframe 里切换回原来的主页面。

  driver.switch_to.default_content()

四、代码示例

loc =(By.ID,'kw')
wait = WebdriverWait(driver,30,1)
wait.until(EC.visibility_of_element_located(loc))  等待元素可见

切换iframe----name 属性
  driver.switch_to.frame('js_login')

切换iframe---frame 的下标
  driver.switch_to.frame[0]

切换iframe---frame 的webelement 对象
  dirver.switch_to_frame(driver.find_element_by_id("kw"))

 

posted @ 2021-02-17 10:46  胖虎大人v  阅读(205)  评论(0)    收藏  举报