操作Frame和IFrame中页面元素
生活随笔
收集整理的這篇文章主要介紹了
操作Frame和IFrame中页面元素
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HTML <iframe> 標簽 定義:iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。 frame標簽有frameset、frame、iframe三種,frameset跟其他普通標簽沒有區別,不會影響到正常的定位 而frame與iframe對selenium定位而言是一樣的,selenium有一組方法對frame進行操作。 1、怎么切到frame中(switch_to.frame()) selenium提供了switch_to.frame()方法來切換frame switch_to.frame(reference):reference是傳入的參數,用來定位frame,可以傳入id、name、index以及selenium的WebElement對象 通常采用id和name就能夠解決絕大多數問題。但有時候frame并無這兩項屬性,用xpath定位,傳入WebElement對象 舉個例子: <iframe src="myframetest.html" /> driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,'myframe')]"))); ? 2、從frame中切回主文檔(switch_to.default_content()) 切到frame中之后,我們便不能繼續操作主文檔的元素,這時如果想操作主文檔內容,則需切回主文檔。 driver.switch_to.default_content() ? 3、嵌套frame的操作(switch_to.parent_frame()) 有時候我們會遇到嵌套的frame,如下: <html> <iframe id="frame1"> <iframe id="frame2" / > </iframe> </html> ? ***從主文檔切到frame2,一層層切進去*** driver.switch_to.frame("frame1") driver.switch_to.frame("frame2") driver.switch_to.parent_frame() # 如果當前已是主文檔,則無效果 ? 有了parent_frame()這個相當于后退的方法,我們可以隨意切換不同的frame,隨意的跳來跳去了。 所以只要善用以下三個方法,遇到frame分分鐘搞定: driver.switch_to.frame(reference) driver.switch_to.parent_frame() driver.switch_to.default_content() 注意: iframe使用后必須跳出來,否則無法定位其它元素 跳出方法: driver.switchTo().defaultContent();
轉載于:https://www.cnblogs.com/wysk/p/7511909.html
總結
以上是生活随笔為你收集整理的操作Frame和IFrame中页面元素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]sqlserver转换为Mysql
- 下一篇: angular2 如何使用websock