51Testing软件测试论坛

标题: 关于webdrive一直定位不到元素,导致链接不能点击。 [打印本页]

作者: flankchen    时间: 2015-12-2 11:04
标题: 关于webdrive一直定位不到元素,导致链接不能点击。
页面代码如下
<body scroll="no">
<div id="layout">
<div id="header">
<div id="leftside">
<div id="sidebar_s">
<div id="sidebar" style="height: 376px;">
<div class="toggleCollapse">
<div class="accordion dwz-accordion" fillspace="sidebar">
<div class="accordionHeader">
<div class="accordionContent" style="height: 322px;">
<ul class="tree treeFolder">
<li>
<div>
<ul>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<div>
<div class="line"></div>
<div class="node"></div>
<div class="file"></div>
<a ref="spwho" target="navTab" href="Jdk_cz_Hyk.jsp">余额查询</a>
</div>


这样写一直定位不到。用xpath也不行。到底是为什么吗
        WebElement element = driver.findElement(By.linkText("余额查询"));
作者: flankchen    时间: 2015-12-2 11:32
有没有大神
作者: joykao    时间: 2015-12-2 13:34
看你贴出来的个人觉得是可以定位到的。你这个不是多页面吧?如果这个元素在新打开的页面上是需要先switch的,如果没有多页面,再往上面看看它的父元素,看看是不是用了frame了,frame也是需要switch的不然也是定位不到哒,个人感觉用了多frame的可能性比较高
作者: flankchen    时间: 2015-12-2 13:58
joykao 发表于 2015-12-2 13:34
看你贴出来的个人觉得是可以定位到的。你这个不是多页面吧?如果这个元素在新打开的页面上是需要先switch的 ...

没有fram的。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<body scroll="no">
<div id="layout">
<div id="header">
<div id="leftside">
<div id="sidebar_s">
<div id="sidebar" style="height: 84px;">
<div class="toggleCollapse">
<div class="accordion dwz-accordion" fillspace="sidebar">
<div class="accordionHeader">
<div class="accordionContent" style="height: 30px;">
<ul class="tree treeFolder">
<li>
<li>
<li>
<li>
<li>
<li>
<div class="">
<ul style="display: block;">
<li>
<li>
<li>
<li>
<li>
<li>
<li>
<div class="">
<div class="indent"></div>
<div class="node"></div>
<div class="file"></div>
<a target="navTab" href="SafepassQuery.jsp">余额查询</a>
</div>
</li>
<li class="last">
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>


试了xpath绝对路径也不能定位到。
作者: @吕小布    时间: 2015-12-2 16:00
WebElement element = driver.findElement(By.xpath(//a[text()='余额查询']));
可以试试这个
作者: @吕小布    时间: 2015-12-2 16:01
少了双引号  WebElement element = driver.findElement(By.xpath(”//a[text()='余额查询']“));
作者: joykao    时间: 2015-12-2 17:55
flankchen 发表于 2015-12-2 13:58
没有fram的。

我把你贴出来的复制出来后变成html后我本地是webdriver启动Firefox和chrome 浏览器都是可以点击的哦,用linkText本身就没问题,你用的是IEdriver么?只有它不稳定,还有你的webdriver版本和浏览器的版本是不是匹配的呢?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2