本章介绍的两种方法都是对于网页上的文字链接的定位操作。根据名字,我们就可以看出来,这两者其实很相似,那么他们的不同在哪里呢。

By LinkText()方法,是对一个的网页超链接,我们所需要输入的关键字为该超链接的所有文字。

By PartialLinkText()方法,看到part这个单词我们就可以知道,当这个文字超链接太长时,我们不想输入那么多的字,就可以调用这个方法,主要输入属于这个超链接文字的部分就可以了。当然,为了防止因为文字出现位置太多,定位失败,建议选择的字符要有唯一性。

这里接着使用百度首页为例子,例子为图中红框内容,代码展示如下:

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class FindElement_LinkText {

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.get("https://www.baidu.com");

        //By linkText 查找元素
driver.findElement(By.linkText("新闻")).click();
Thread.sleep(1000);
//返回百度首页
driver.navigate().back();
Thread.sleep(1000);
//By PartialLinkText 查找元素
driver.findElement(By.partialLinkText("设为主页")).click(); } }

代码中出现的Thread.sleep(),是停顿的意思,括号中的数字单位为ms。加上这段代码是为了保证整个程序的可执行性。因为在实际操作做,经常出现代码报错,说定位不到元素。后来经过个方面的查证,发现不是元素定位错了,而是因为在页面跳转的时候,可能加载速度比较慢,跟不上代码执行速度,导致的元素定位失败。所以在出现页面跳转或者转变的时候,都建议在该行代码下加一个Thread.sleep()操作,让代码等待页面加载完成之后再执行,可以避免出现这种以为网页加载慢导致的元素定位失败错误。

Java + selenium 元素定位(2)之By LinkText/PartialLinkText的更多相关文章

  1. java+selenium元素定位和元素操作

    1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...

  2. Java + selenium 元素定位(5)之By Xpath

    这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...

  3. Java + selenium 元素定位(4)之By CSS

    这篇我要介绍元素定位的倒数第二个方法啦,就是基于CSS的元素定位.关于一些CSS的知识,我这里就不累赘的讲了,以后可能会单独写一篇关于CSS的介绍.当然个人推荐如果之前完全没有CSS只是储备的,可以选 ...

  4. Java + selenium 元素定位(6)之iframe切换(即对富文本框的操作)

    在元素定位中,对富文本框的元素定位是特别的,当我们使用普通的元素定位方法对富文本框进行操作时,我们会发现不管我们之前介绍的八种方法中的任何方法,我们都不能成功定位到富文本框,并对其进行操作.那是因为富 ...

  5. Java Selenium - 元素定位(一)

    一,单个元素对象定位 Webdriver通过findElement() , findElements()等方法调用By对象来定位和查询元素 , findElement()返回一个元素对象,否则抛出异常 ...

  6. Java + selenium 元素定位(3)之By TagName

    本篇介绍findElement接口中的By TagName方法.首先,要知道什么是tagname.之前我们使用F12开发者工具查看网页元素是,发现每行代码前都有<input>.<bo ...

  7. Java + selenium 元素定位(1)之By id/Name/ClassName

    这篇文章开始,要介绍web自动化核心的内容,也是最困难的部分了,就是定位元素,并去对元素进行操作.想要对元素进行操作,第一步,也是最重要的一步,就是要找到这个元素,如果连元素都定位不到,后续什么操作都 ...

  8. Selenium+Java(三)Selenium元素定位

    前言 使用Selenium做元素定位的时候,需要用到HTML的知识,所以最好是能懂得HTML的基本知识. 一.页面元素的查看(以百度为例) 打开IE浏览器,点击F12进入开发者模式,点击图中红圈圈中的 ...

  9. selenium元素定位陷阱规避

    为什么selenium可以在各个浏览器上运行?因为selenium在与各个浏览器驱动执行前,会先把脚本转化成webdriver, webdriver wire协议(一种json格式的协议),这样就与脚 ...

随机推荐

  1. MySQL-第八篇MySQL内置函数

    1.根据函数对多行数据的处理方式,可以分为: 1>单行函数:对每行输入值进行单独计算,每行得到一个计算结果返回给用户.  2>多行函数:聚集函数.分组函数,主要用于完成一些统计功能.对多行 ...

  2. 《剑指offer》面试题4 替换空格 Java版

    (给一个足够长的字符数组,其中有一段字符,将' '(空格)替换成'%' '2' '0'三个字符,原字符段由'\0'结尾) 书中方法:这道题如果从头到尾扫描数组并替换,会涉及到数组的移动.如果不移动元素 ...

  3. java_第一年_JavaWeb(4)

    HttpServletResponse对象 向客户端发送数据的方法: 通过getOutputStream()方法得到OutputStream对象,再通过write发送 通过getWriter()方法得 ...

  4. dp(过河问题)

    http://codeforces.com/gym/101492/problem/E Teamwork is highly valued in the ACM ICPC. Since the begi ...

  5. elementUI 导航栏点击之后改变背景色,背景色悬停

    一开始设置的是: .menuLeft .el-menu-item:hover{ background: #6db6ff !important; } .menuLeft .el-submenu__tit ...

  6. jquery实现表单验证与页面加载之后执行渲染

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. JVM(10)之 年老代收集器

    开发十年,就只剩下这套架构体系了! >>>   在上一篇博文我们介绍了JAVA新生代收集器,本篇博文我们要讲的就是关于老年代的一些收集器.老年代存活的一般是大对象以及生命很顽强的对象 ...

  8. Crash的数字表格(莫比乌斯反演)

    Crash的数字表格 Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least Common Multiple).对于两个正整数a和b,LCM(a, b)表示能同时被a和b ...

  9. openstack stein部署手册 1. 准备

    # 控制节点与计算节点,分别指定静态解析 /etc/hosts 192.168.123.201 controller 192.168.123.202 compute01 # 控制节点与计算节点,分别安 ...

  10. Center OS 7

    1:关闭防火墙 systemctl stop iptables.service 2:禁止开启启动 systemctl disable firewalld.service 3:查看防火墙 firewal ...