我可以切换到框架,并且在使用chrome的情况下可以定位元素,但是在IE的情况下不能定位。
driver.switchTo().frame(0);
driver.findElement(By.xpath("//a[contains(.,'Logout')]")).submit();
使用这两行代码可以访问,但是我认为在IE的情况下,它不是在帧内切换。我也尝试通过WebElement
,索引,名称来切换帧。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<frameset id="frRoot" framespacing="0" border="0" frameborder="0" rows="125,26,*,0,0">
<frame id="frTopLeftPane" scrolling="no" name="brandingTop" src="/BIW/Lobby/Frameset/BrandingTop.aspx?dv=1&nfGuid=">
<a style="vertical-align:top;" href="/ic/bin/logout.asp?
sessionid=&id=338206" target="_top">
<img src="/skins/BIW/NewSkin/images/logout.gif" alt=""> Logout
</a>
</frame>
</frameset>
</html>
答案 0 :(得分:0)
您应该真正升级代码,并应该引入 webDriverWait 以提高稳定性。试用下面给出的代码:
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("frRoot")));
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.id("frTopLeftPane")));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(.,'Logout')]"))).submit();