下面的代码在chrome中工作正常,能够切换到框架并单击注销按钮。但是在IE的情况下,它显示“无法单击元素错误”。我使用的是(.click()),而不是(.submit ()),然后出现类似“执行JavaScript错误”的错误。
driver.switchTo().frame("brandingTop");
driver.findElement(By.xpath("//a[contains(.,'Logout')]")).click();
<html>
<head><title>Software Testing Help - iframe session</title>
</head>
<body>
<frameset id="frRoot" framespacing="0" border="0" frameborder="0" rows="125,26,*,0,0">
<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>
</frameset>
</frameset>
</body>
System.setProperty("webdriver.ie.driver",AbsoluteDriverPath);
webdriver=new InternetExplorerDriver();
webdriver.get(URL);
webdriver.manage().window().maximize();
webdriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.switchTo().frame("brandingTop");
driver.findElement(By.xpath("//a[contains(.,'Logout')]")).click();
答案 0 :(得分:0)
尝试使用框架元素本身而不是名称来切换框架。
frameElement = driver.findElement(By.xpath("//frame[contains(@name,'brandingTop')]"));
driver.switchTo().frame(frameElement);