51Testing软件测试论坛
标题:
求助:selenium2.0 中xpath的使用
[打印本页]
作者:
liran_04
时间:
2012-9-21 16:14
标题:
求助: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 是可以找到的
作者:
yazi0127
时间:
2012-12-27 09:33
要先selectFrame,然后再用xpath.
作者:
六月天
时间:
2012-12-27 11:03
楼上那个说错了。
首先,既然要找的元素在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();
作者:
bob123654
时间:
2013-2-5 17:30
3楼的回答很正确 六月天技术不错啊
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2