使用 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();