求助:selenium2.0 中xpath的使用
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>夫妇夫妇凤飞飞发</title>
</head>
<body>
<div class="top">
<iframe id = topLoginiframe>
<html>
<head>
.................
</head>
<body>
<form id = login>
<input id = account>
<input id = password>
</body>
<div class="middle">
</div>
</body>
</html>
类似在一个html脚本中:
WebDriver driver = new InternetExplorerDriver ();
diver.findElement(By.xpath("//iframe[@id='topLoginiframe']//input[@id=login]"));
提示我找不到路径,为什么呢?是selenium2.0 不能找到嵌套在html中的内容吗?
selenium 1.0 是可以找到的 要先selectFrame,然后再用xpath. 楼上那个说错了。
首先,既然要找的元素在iframe里面,不管selenium 1还是2都是找不到的。必须在定位之前做frame的切换。
之所以说楼上的说错了,是因为楼上用的方法是selenium 1的方法,而楼主问的是WebDriver的方法。
Webdriver中切换frame的方法是使用switchTo。按照楼主的例子,在:
diver.findElement(By.xpath("//iframe[@id='topLoginiframe']//input[@id=login]"));
之前插一句切换frame:
driver.switchTo().frame(driver.findElement(By.id("topLoginiframe")));
然后把原来的改成:
diver.findElement(By.id("login"));
这样100%能找到。
如果要跳回原来的外层frame,那就用:
driver.switchTo().defaultContent(); 3楼的回答很正确 六月天技术不错啊:lol
页:
[1]