`

5.5 查找条件对象By

 
阅读更多
在导航到对应页面后,就可以对页面上的元素进行操作了。然而,在进行操作之前,必须要找到相应的元素。如何才能找到这些元素呢?需要使用查找条件对象“By”进行查找。
根据HTML的不同,查找条件也各有不同。例如,可以按HTML元素的ID进行查找,也可以按Name属性查找,或者直接按HTML标签查找,接下来将列举常用的查找条件。
1  Id(idToFind)
WebElement baiduTextBox = driver.findElement(By.id("kw"));
baiduTextBox.sendKeys("找到文本框");

代码driver.FindElement(By.Id("kw"));表示寻找ID为“kw”的元素。
找到文本框之后,执行“baiduTextBox.SendKeys("找到文本框");”,在搜索文本框中输入“找到文本框”。

2  Name(nameToFind)
Name方法按Name进行查找与按ID进行查找类似,例如百度首页上面有“登录”超级链接,它的name属性为“tj_login”,可以用其作为查找条件来获取登录链接对象
WebElement loginButton= driver.findElement(By.name("tj_login"));


3  LinkText(linkTextToFind)
LinkText方法按链接的文本进行查找。例如,百度首页上有“登录”超级链接,它的链接文本为属性为“登录”,可以用它作为查找条件来获取登录链接对象。先打开百度页面,然后单击“登录”
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
WebElement baiduLogin = driver.findElement(By.LinkText("登录"));
baiduLogin.click();


4  PartialLinkText(partialLinkTextToFind)
PartialLinkText方法按链接的文本进行模糊查找。例如,百度首页上有“登录”超级链接,它的链接文本属性为“登录”。PartialLinkText可用于模糊查询,它可以用“录”字作为查找条件来获取“登录”链接对象。先打开百度页面,然后单击“登录”超级链接
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
WebElement baiduLogin = driver.findElement(By.partialLinkText("录"));
baiduLogin.click();


5  ClassName(classNameToFind)
ClassName方法按链接的文本进行模糊查找。例如,百度贴吧上有“贴吧搜索”超级链接,其Class属性为“j_global_search”,可以用其作为查找条件来获取“贴吧搜索”链接。先打开贴吧页面,然后单击“贴吧搜索”链接
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
WebElement tiebaSearch = driver.findElement(By.className("j_global_search"));
tiebaSearch .click();


6  TagName(TagNameToFind)
TagName方法按标记名称进行查找,并返回第一个匹配项。例如,百度首页有“搜索设置”超级链接,使用FireBug查看其HTML代码,可以发现它是整个页面的第一个“a”标记,因此,可以用它的标记名称“a”作为查找条件来获取“搜索设置”链接。先打开百度主页,然后单击“搜索设置”超级链接
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
WebElement searchSetting = driver.findElement(By.tagName("a"));
searchSetting .click();


7  XPath(xPathToFind)
如果以上查找方法都无法定位到指定对象,那么可以按XPath进行查找。例如,百度首页有文本框,其HTML代码如下:

<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">

如要操作该文本框,则可以通过其XPath表达式“//input[@id='kw']”作为查找条件获取该对象,找到该文本框,然后再输入文本
WebDriver driver = new FirefoxDriver();
Navigation navigation = driver.navigate();
navigation.to(http://www.baidu.com);
WebElement baiduTextBox = driver.findElement(By.xpath("//input[@id='kw']"));
baiduTextBox.sendKeys("找到文本框");
分享到:
评论

相关推荐

    第5章 其他数据库对象.ppt

    创建索引应考虑表的大小和查询需求,一般来说,主键列、经常出现在WHERE子句或连接条件中的列是理想的索引关键字。不过,过多或不适当的索引可能会降低DML操作的性能。 5.3 序列 序列是Oracle提供的一种自动产生...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    -- Editable user database that can also be used by UserDatabaseRealm to authenticate users --&gt; type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" ...

    collectjs是一个用于在JavaScript中处理数组和对象库

    - **查找** (`find`):查找满足条件的第一个元素。 - **排序** (`sort`, `sortBy`):按升序或降序排列集合。 - **合并** (`merge`):合并两个或多个集合。 - **删除** (`forget`):从集合中移除指定键的元素。 **4....

    Access+2000中文版高级编程

    11.7.2 报表的条件格式化 352 11.8 小 结 356 第12章 处理数据访问页 358 12.1 为什么使用数据访问页 358 12.1.1 理解数据访问页的结构化方式 359 12.1.2 浏览控件 361 12.1.3 数据访问页与窗体和报表的...

    MySQL 5.1中文手冊

    3.7.1. 查找所有未分发的孪生项 3.7.2. 显示孪生对状态的表 3.8. 与Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项...

    Linq基础学习资料,通俗易懂

    `System.Array`类提供了一系列静态方法来操作数组,例如`Array.Copy()`用于复制数组,`Array.IndexOf()`用于查找特定元素的索引位置等。 ##### 2.5 不用循环填充数组 可以使用`Array.Fill()`方法填充数组,无需手动...

    JSP教程(清晰版)

    - **排序查询**:通过ORDER BY子句进行排序。 - **分析结果集查询**:处理查询结果。 - **使用统配符查询**:使用LIKE子句进行模糊查询。 **5.4 更新记录**:修改数据库中的现有记录。 **5.5 添加记录**:插入新...

    Java数据库编程宝典2

    5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 ...

    JAVA面试题目

    - **HashMap**、**TreeMap**、**LinkedHashMap**:`HashMap`提供快速的元素查找,但不保持插入顺序;`TreeMap`基于红黑树实现,保持键的自然排序或自定义排序,提供O(log n)的时间复杂度;`LinkedHashMap`保持元素...

    Java数据库编程宝典4

    5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 ...

    Java数据库编程宝典1

    5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 ...

    Java数据库编程宝典3

    5.5 使用ALTER TABLE改变表 5.6 删除或取消表 5.7 创建基于Swing的表构建器 5.7.1 控制程序 5.7.2 视图 5.7.3 模型 5.8 小结 第6章 插入、更新和删除数据 6.1 使用SQL INSERT插入数据 6.1.1 INSERT语句 ...

    MYSQL中文手册

    3.7.1. 查找所有未分发的孪生项 3.7.2. 显示孪生对状态的表 3.8. 与Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. ...

    R语言笔记:数据分析与绘图的编程环境

    例如`seq(from=1, to=10, by=2)`表示从1到10步长为2的序列。 **2.4 逻辑向量** 逻辑向量通常用于条件筛选。例如`x &gt; 5`会返回一个逻辑向量,指示每个元素是否大于5。 **2.5 缺失值** 在R中,`NA`表示缺失值。...

    Python3高级教程

    1.15 通过某个字段将记录分组:利用groupby函数对数据进行分组聚合操作。 1.16 过滤序列元素:提供筛选数据的方法,如列表推导式、filter函数等。 1.17 从字典中提取子集:如何选取字典中满足特定条件的键值对。 ...

    C#语言规范(4.0版本)

    5.5 变量引用的原子性 107 6. 转换 109 6.1 隐式转换 109 6.1.1 标识转换 110 6.1.2 隐式数值转换 110 6.1.3 隐式枚举转换 110 6.1.4 可以为 null 的隐式转换 110 6.1.5 null 文本转换 111 6.1.6 隐式引用转换 111 ...

    Oracle_Database_11g完全参考手册.part3/3

    9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 ...

    Oracle_Database_11g完全参考手册.part2/3

    9.6 使用MAX或MIN函数查找行 9.7 优先级和圆括号的应用 9.8 小结 第10章 日期:过去、现在及日期的差 10.1 日期算法 10.1.1 SYSDATE、CURRENTDA_DATE及SYSllMESTAMP 10.1.2 两个日期的差 10.1.3 添加月份 10.1.4 ...

    微软C#语言规范,C#语言教程中文版

    5.5 变量引用的原子性 107 6. 转换 109 6.1 隐式转换 109 6.1.1 标识转换 110 6.1.2 隐式数值转换 110 6.1.3 隐式枚举转换 110 6.1.4 可以为 null 的隐式转换 110 6.1.5 null 文本转换 111 6.1.6 隐式引用转换 111 ...

    C#语言规范(2.0,3.0,4.0合集)

    5.5 变量引用的原子性 107 6. 转换 109 6.1 隐式转换 109 6.1.1 标识转换 110 6.1.2 隐式数值转换 110 6.1.3 隐式枚举转换 110 6.1.4 可以为 null 的隐式转换 110 6.1.5 null 文本转换 111 6.1.6 隐式引用转换 111 ...

Global site tag (gtag.js) - Google Analytics