3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用cssSelector,
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[title='Fill Quote']")));

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
driver.switchTo().frame() 有多個(gè)重載。
driver.switchTo().frame(name_or_id)
在這里,您iframe沒有ID或名稱,因此不適合您。
driver.switchTo().frame(index)
這是最后選擇的選項(xiàng),因?yàn)槭褂盟饕粔蚍€(wěn)定,可以想象。如果這是您頁(yè)面中唯一的iframe,請(qǐng)嘗試driver.switchTo().frame(0)
driver.switchTo().frame(iframe_element)
最常見的一種。您可以像其他元素一樣定位iframe,然后將其傳遞到方法中。
在這里按title屬性定位似乎是最好的。
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[title='Fill Quote']")));
// driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@title='Fill Quote']")));

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
在切換到框架之前,請(qǐng)確保切換到默認(rèn)內(nèi)容:
driver.switchTo().defaultContent();
driver.switchTo().frame(x);
x可以是幀編號(hào),也可以是a driver.findlement并使用可用的任何選項(xiàng),例如:driver.findElementByName("Name")。
添加回答
舉報(bào)