OverTimeDog 发表于 2015-10-28 17:50:08

求问这种情况为什么不能用linkText来定位

<a href="/bidding/publicity/view?login_id=3244422" target="_blank">查看结果</a>
上述这种情况,我用driver.findElement(By.linkText("查看结果")).click();一直不成功,报错就是找不到元素
请大神们指点!

踏雪飞狐 发表于 2015-10-28 18:24:16

linktext不是每个都能定位的,要准确高效的定位建议用xpath或者css方式

OverTimeDog 发表于 2015-10-29 09:45:49

踏雪飞狐 发表于 2015-10-28 18:24
linktext不是每个都能定位的,要准确高效的定位建议用xpath或者css方式

通过FireBug获得的xpath和css绝对路径,都定位不了这个文案链接:'(什么办法都用了还是报错 好奇怪

joykao 发表于 2015-10-29 10:40:26

查看结果这个链接是不是有很多个呢?是不是页面上用了多frame?或者是不是有多页面?如果是的话需要switch的还有即使用cssSelector去定位元素也不要把值写死,我觉得那个login_id应该是会变得href="/bidding/publicity/view?login_id=3244422

踏雪飞狐 发表于 2015-10-29 11:19:07

OverTimeDog 发表于 2015-10-29 09:45
通过FireBug获得的xpath和css绝对路径,都定位不了这个文案链接什么办法都用了还是报错 好奇怪

是不是用了多frame或者窗口切换了,如果没有的话用xpath不可能定位不到的,除非你写错路径了

OverTimeDog 发表于 2015-10-29 13:57:22

joykao 发表于 2015-10-29 10:40
查看结果这个链接是不是有很多个呢?是不是页面上用了多frame?或者是不是有多页面?如果是的话需要switch ...

<!DOCTYPE html>


<html>

<head>


<body>

   <header id="header" class="mod-header" log-mod="header">


   <div id="logo" class="mod-logo " log-mod="logo">


   <div id="crumbs" class="mod-crumbs" log-mod="crumbs">


   <div class="l-flow-con l-flow-con-fold clearfix">

       <div id="sideNav" class="mod-side-nav" log-mod="side-nav">


       <div class="l-right-con l-right-con-expanded">

         <div id="backToManage" class="mod-back-to-manage">


         <div id="evaluateView" class="mod-evaluate-view" log-mod="evaluateView">
               <iframe id="st-content-iframe" frameborder="no" border="0" style="width: 100%; border: medium none; height: 8042px;">
               <!DOCTYPE >


                  <html>

                     <head>


                     <body>

                            <style>


                            <style>


                            <div class="view">
                                 <h1>项目:【QA测试测试】</h1>


                                 <div class="info-list">

                                       <div class="info-item fixed-hidden">


                                       <div class="info-item fixed-hidden">


                                       <div class="info-item fixed-hidden">


                                       <div class="info-item">


                                       <div class="info-item">


                                       <div class="info-item">


                                       <div class="info-item">


                                       <div class="info-item">


                                       <div class="info-item">
                                                <span class="info-title">完成情况(入选/目标):</span>

                                                <span class="info-text">766.22%</span>


                                       </div>


                                       <p>
                                                <label>结果:</label>

                                                成功
                                                <a href="/bidding/publicity/view?bidding_id=2906135780192437042" target="_blank">查看结果</a>


                                        </p>


                                    </div>


                              <div class="results-container clearfix">


                         </div>


                   </body>


            </html>


         </iframe>


       </div>


    </div>


</div>
实际上是这样一个格式,大神求解!











OverTimeDog 发表于 2015-10-29 16:40:08

踏雪飞狐 发表于 2015-10-29 11:19
是不是用了多frame或者窗口切换了,如果没有的话用xpath不可能定位不到的,除非你写错路径了

<!DOCTYPE html>
<html>
<head>
<body>
   <header id="header" class="mod-header" log-mod="header">
   <div id="logo" class="mod-logo " log-mod="logo">
   <div id="crumbs" class="mod-crumbs" log-mod="crumbs">
   <div class="l-flow-con l-flow-con-fold clearfix">
       <div id="sideNav" class="mod-side-nav" log-mod="side-nav">
       <div class="l-right-con l-right-con-expanded">
         <div id="backToManage" class="mod-back-to-manage">
         <div id="evaluateView" class="mod-evaluate-view" log-mod="evaluateView">
               <iframe id="st-content-iframe" frameborder="no" border="0" style="width: 100%; border: medium none; height: 8042px;">
               <!DOCTYPE >
                  <html>
                     <head>
                     <body>
                            <style>
                            <style>
                            <div class="view">
                                 <h1>项目:【QA测试测试】</h1>
                                 <div class="info-list">
                                       <div class="info-item fixed-hidden">
                                       <div class="info-item fixed-hidden">
                                       <div class="info-item fixed-hidden">
                                       <div class="info-item">
                                       <div class="info-item">
                                       <div class="info-item">
                                       <div class="info-item">
                                       <div class="info-item">
                                       <div class="info-item">
                                                <span class="info-title">完成情况(入选/目标):</span>
                                                <span class="info-text">766.22%</span>
                                       </div>
                                       <p>
                                                <label>结果:</label>
                                                成功
                                                <a href="/bidding/publicity/view?bidding_id=2906135780192437042" target="_blank">查看结果</a>
                                        </p>
                                    </div>
                              <div class="results-container clearfix">
                         </div>
                   </body>
            </html>
         </iframe>
       </div>
    </div>
</div>
实际上是这样一个格式,大神求解!

joykao 发表于 2015-10-29 17:27:52

OverTimeDog 发表于 2015-10-29 13:57
...

果然是多iframe的,你在点击那个连接元素的之前加上一句switch试试

driver.switchTo().defaultContent().switchTo().frame("st-content-iframe");

OverTimeDog 发表于 2015-10-29 18:04:05

joykao 发表于 2015-10-29 17:27
果然是多iframe的,你在点击那个连接元素的之前加上一句switch试试

driver.switchTo().defaultContent ...

感谢! 用你的方法成功了 刚学selenium 没遇到过iframe的 第一次遇到这个情况

joykao 发表于 2015-10-29 18:11:35

OverTimeDog 发表于 2015-10-29 18:04
感谢! 用你的方法成功了 刚学selenium 没遇到过iframe的 第一次遇到这个情况

:loveliness:多遇到问题以后就知道啦;P
页: [1]
查看完整版本: 求问这种情况为什么不能用linkText来定位