使用 Java 切換到框架

例如,如果 html 檢視或元素的 html 原始碼由 iframe 包裝,如下所示:

<iframe src="../images/eightball.gif" name="imgboxName" id="imgboxId">
   <p>iframes example</p>
   <a href="../images/redball.gif" target="imgbox">Red Ball</a>
</iframe><br />

…然後,要對 iframe 的 web 元素執行任何操作,你必須首先使用以下任一方法將焦點切換到 iframe:

使用幀 ID (僅當你知道 iframe 的 ID 時才應使用)。

driver.switchTo().frame("imgboxId"); //imgboxId - Id of the frame

使用框架名稱 (僅當你知道 iframe 的名稱時才應使用)。

driver.switchTo().frame("imgboxName"); //imgboxName - Name of the frame

使用幀索引 (僅當你沒有 iframe 的 id 或名稱時才應使用),其中索引定義 iframe 在所有幀中的位置。

driver.switchTo().frame(0); //0 - Index of the frame

注意:如果頁面中有三個幀,則第一幀將位於索引 0 處,第二幀位於索引 1 處,第三幀位於索引 2 處。

使用先前定位的 webelement (僅當你已經找到框架並將其作為 WebElement 返回時才應使用)。

driver.switchTo().frame(frameElement); //frameElement - webelement that is the frame

所以,點選 Red Ball 錨點:

driver.switchTo().frame("imgboxId");
driver.findElement(By.linkText("Red Ball")).Click();