在IE上进行测试时无法切换到框架,但在chrome上工作正常

时间:2018-10-03 07:09:26

标签: java selenium testng

我可以切换到框架,并且在使用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&amp;nfGuid=">

<a style="vertical-align:top;" href="/ic/bin/logout.asp? 
sessionid=&amp;id=338206" target="_top">

<img src="/skins/BIW/NewSkin/images/logout.gif" alt=""> Logout
                    </a>
 </frame>
</frameset>
</html>

1 个答案:

答案 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();