在元素定位中,對富文本框的元素定位是特別的,當我們使用普通的元素定位方法對富文本框進行操作時,我們會發現不管我們之前介紹的八種方法中的任何方法,我們都不能成功定位到富文本框,並對其進行操作。那是因為富文本框是特殊的。一般的富文本框都會有個<iframe>標簽。而這個標簽代表什么,代表這分頁,也就是說相對於原網頁來說,這是新的一個頁面。所以我們之前的操作都是對原頁面的操作,對另個頁面沒有任何影響。
所以,在我們對網頁中<iframe>標簽下的元素進行操作時,我們先要進行一步操作,就是進入該<iframe>標簽下的新頁面。代碼為: driver.switchTo().frame(參數);當我們對該頁面的操作完成后,想要對原頁面元素進行操作,同樣的我們首先要返回到原頁面。返回代碼:driver.seitchTo().defaultContent()。
關於 driver.switchTo().frame(參數)。這中間的參數表達有以下幾種方式。
driver.switchTo().frame(0);用<iframe>標簽的位置數量來表示。0代表該頁面的第一個<iframe>標簽,以此類推。
driver.switchTo().frame(driver.findElement(By.TagName("iframe")));用WebElement對象來定位。
driver.switchTo().frame(“frameID”);用ID來定位。
driver.switchTo().frame("frameName");用name來定位。