1. 程式人生 > >selenium 定位iframe

selenium 定位iframe

1、定位動態的iframe

      因為剛學selenium,所以用了QQ郵箱練手,發現到處卡殼,QQ郵箱裡面好多web元素都是動態的,一開始總是定位不到正文輸入框那個位置,後來發現是在一個iframe裡面,這個iframe的id是動態的,如下圖:

後來多看了幾個,發現都是以_149913開頭的

切換的時候,程式碼如下,java程式碼:

      WebElement frame = driver.findElement(By.xpath("//iframe[starts-with(@id, '_149913')]"));
      driver.switchTo().frame(frame);

2、定位iframe下的iframe

iframe的定位方法有一個是根據index來定位的,第一個iframe的index為0。此時需要注意的是,如果要定位iframe中的第一個iframe,此時的index也是從0開始的

html程式碼如下:

<frameset rows="50%,50%">

  <frame src="main-1.html">
         <frame id = "main-1-1" src="main-1-1.html">
         </frame>
  </frame>
  <frame src="main-2.html">
  </frame>

</frameset>
此時如果要定位到id為main-1-1的iframe的話,就需要切換兩次
driver.switch_to.frame(0)  \\切換到第一個iframe裡面
driver.switch_to.frame(0)  \\切換到第一個iframe裡面的子iframe