selenium 定位iframe
阿新 • • 發佈:2019-01-23
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