zoukankan      html  css  js  c++  java
  • 《手把手教你》系列技巧篇(十三)-java+ selenium自动化测试-元素定位大法之By partial link text(详细教程)

    1.简介

     本文按计划就要开始介绍partial link text,顾名思义是通过链接定位的(官方说法:超链接文本定位)。什么是partial link text呢,看到part这个单词我们就可以知道,当这个文字超链接太长时,我们不想输入那么多的字,就可以调用这个方法,主要输入属于这个超链接文字的部分就可以了。当然,为了防止因为文字出现位置太多,定位失败,建议选择的字符要有唯一性,不然会定位到其他地方,或者无法定位。

    2.常用定位方法(8种)

    (1)id
    (2)name
    (3)class name
    (4)tag name
    (5)link text
    (6)partial link text(今天讲解)
    (7)xpath
    (8)css selector

    3.自动测试实战

     昨天那篇文章是以奥运的排名为例,今天打算继续以这个为例进行实战。但是看到百度首页变成“看奥运上百度,聚焦夺将时刻”是一个图片,没办法只好换一个了。看看首页刚好有个热搜“打哭伊藤!孙颖莎:过瘾”标题,那么宏哥就以这个为例。

    3.1大致步骤

    1.访问度娘首页。

    2.通过partial linkText定位到“打哭伊藤!孙颖莎:过瘾”,宏哥这里选择“打哭”二字,点击一下。

    3.2代码设计

    3.3参考代码

    package lessons;
    
    import java.util.concurrent.TimeUnit;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    
    /**
     * @author 北京-宏哥
     *
     * 2021年7月30日
     */
    public class FindElement_PartialLinkText {
        
        public static void main(String[] args) throws Exception {  
            
            System.setProperty("webdriver.chrome.driver", ".\Tools\chromedriver.exe");  
               
            WebDriver driver = new ChromeDriver();  
         
            driver.manage().window().maximize();  
           
            driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
              
            driver.get("https://www.baidu.com");  
            
            driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
            
            driver.findElement(By.partialLinkText("打哭")).click();
            
            //判断打开页面是不是奥运奖牌榜 最新排名,这里用url作为验证
              assert driver.getCurrentUrl() == "https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E6%89%93%E5%93%AD%E4%BC%8A%E8%97%A4%21%E5%AD%99%E9%A2%96%E8%8E%8E%3A%E8%BF%87%E7%98%BE&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1";
                  
              System.out.println("断言通过!");
            
            driver.close();
          
        }
    
    }

    3.4运行代码

    1.运行代码,右键Run AS->java Application,控制台输出,如下图所示:

    2.运行代码后电脑端的浏览器的动作,如下小视频所示:

    4.小结

    1.link_text 和 partial_link_text区别:link_text 是超链接载体的精确匹配,而partial_link_text是对超链接载体的模糊匹配
    2.使用时这个超链接载体必须是唯一的。
    3.在网页上可通过Ctrl+F来查找关键字查看链接载体是否唯一。
    4.linkText也是遵循“匹配第一个”的原则,同一网页多次出现的话找第一个。

    好了,到此关于partial linkText定位(模糊匹配)也介绍完了,感谢你耐心的阅读。

    5.拓展

    因为partial linkText定位(模糊匹配),因为宏哥为了验证猜测,就将“打哭伊藤!孙颖莎:过瘾”中间的文字去掉了,就剩下“打哭过瘾”大家猜猜运行代码还能定位到元素进行点击跳转新页面吗,答案:就是不能。

    5.1运行代码

    1.运行代码,右键Run AS->java Application,控制台输出,如下图所示:

    2.运行代码后电脑端的浏览器的动作,如下小视频所示:

    从控制台我们可以看出已经报错了(Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"partial link text","selector":"打哭过瘾"}),从视频中可以看到进入百度以后,就没有进入打哭的页面。

    出现这种情况的原因是:partial link Text是超链接文本模糊匹配,虽然说是partial,但一定要连续的字才行,随便从中间挑几个字不连续那不行。英文也一样,得是连续字母才行。你要是不信偏要以身试法,那就会报错。



        感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
        如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的将是我最大的写作动力!另外您也可以选择关注我,可以很方便找到我!
        本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
    个人微信公众号 个人微信
  • 相关阅读:
    图灵科普系列丛书封面有奖征集(贴图送书)
    图灵2010.03书讯
    博客园图灵杯第4届博问大赛(2.27~3.27)
    asp.net运行原理
    IIS与NET桥梁
    offsetParent解释
    XML 操作类库(开源项目)
    W3C不兼容问题(最根本的原因,及解决方案)
    深入理解JavaScript系列
    HttpApplication对象创建的细节
  • 原文地址:https://www.cnblogs.com/du-hong/p/15069374.html
Copyright © 2011-2022 走看看