flankchen 发表于 2015-12-2 11:04:45

关于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:27

有没有大神

joykao 发表于 2015-12-2 13:34:51

看你贴出来的个人觉得是可以定位到的。你这个不是多页面吧?如果这个元素在新打开的页面上是需要先switch的,如果没有多页面,再往上面看看它的父元素,看看是不是用了frame了,frame也是需要switch的不然也是定位不到哒,个人感觉用了多frame的可能性比较高:loveliness:

flankchen 发表于 2015-12-2 13:58:49

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:14

WebElement element = driver.findElement(By.xpath(//a));
可以试试这个

@吕小布 发表于 2015-12-2 16:01:39

少了双引号WebElement element = driver.findElement(By.xpath(”//a“));

joykao 发表于 2015-12-2 17:55:05

flankchen 发表于 2015-12-2 13:58
没有fram的。




我把你贴出来的复制出来后变成html后我本地是webdriver启动Firefox和chrome 浏览器都是可以点击的哦,用linkText本身就没问题,你用的是IEdriver么?只有它不稳定,还有你的webdriver版本和浏览器的版本是不是匹配的呢?
页: [1]
查看完整版本: 关于webdrive一直定位不到元素,导致链接不能点击。