selenium 嵌套frame定位问题
页面有三个frame:top,left,main。结构如下述代码所示。要定位到 left frame应该如何操作?<html>
<head><title>窗口应用案例</title></head>
<frameset rows="30%,*" border="5">
<frame src="top.html" name="top"/>
<frameset cols="30%,*">
<frame src="left.html"name="left"/>
<frame src="main.html" name="main"/>
</frameset>
</frameset><noframes></noframes>
</html>可以定位frame("top"),但是继续定位到frame("left")。则抛出异常NoSuchFrameException。 driver.switchTo().frame("top");
driver.findElement(By.name("message")).sendKeys("top"); driver.switchTo().defaultContent();
driver.switchTo().frame("left"); 试试看去掉driver.switchTo().defaultContent(); 回复 2# maomao121
去掉也还是不行的。 和层级结构有关吗?top和left不在同一层级? 要不在driver.switchTo().frame("left")之前, 先用find element定位一下第二个frameset,看看能不能定位到 【问题初步解决】
与层次结构有关。left 在嵌套的framset下。直接driver.switchTo().frame("left")找不到。
但是用find element 定位找到了。
driver.switchTo().defaultContent();
driver.switchTo().frame(driver.findElement(By.name("left"))); 学习了 用find_by_name 也终于定位到main Frame了
页:
[1]