查找条件对象By—Selenium自动化测试指南(3)
51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
程序清单5-12 Java代码
package Project1; |
程序清单代码执行后可以发现,程序共打开了两个页面:百度和谷歌。然后,页面先后退到了第一个页面(百度),再前进到了第二个页面(谷歌)。
5.4.3 Refresh()
使用该方法将刷新整个页面(类似于按F5的效果),多用于执行某些操作后需要刷新的情况(例如登录后页面未自动刷新),代码如程序清单5-13或程序清单5-14所示。
程序清单5-13 C#代码
using System; |
程序清单5-14 Java代码
package Project1; |
5.5 查找条件对象By
在导航到对应页面后,就可以对页面上的元素进行操作了。然而,在进行操作之前,必须要找到相应的元素。如何才能找到这些元素呢?需要使用查找条件对象“By”进行查找。
根据HTML的不同,查找条件也各有不同。例如,可以按HTML元素的ID进行查找,也可以按Name属性查找,或者直接按HTML标签查找,接下来将列举常用的查找条件。
5.5.1 Id(idToFind)
可以按照HTML元素的ID属性进行查找。例如,百度首页有一个搜索文本框,如图5-26所示。
图5-26 百度搜索文本框
其HTML代码如下:
<input id="kw" class="s_ipt" type="text" maxlength="100" name="wd" autocomplete="off">
如要操作该文本框,则可以通过ID(id="kw")作为查找条件获取该对象,代码如程序清单5-15或程序清单5-16所示。
程序清单5-15 C#代码
IWebDriverdriver=newFirefoxDriver(); |
程序清单5-16 Java代码
WebDriver driver = new FirefoxDriver(); |
代码driver.FindElement(By.Id("kw"));表示寻找ID为“kw”的元素。
找到文本框之后,执行“baiduTextBox.SendKeys("找到文本框");”,在搜索文本框中输入“找到文本框”。
代码清单5-15和5-16的执行结果如图5-27所示。
5.5.2 Name(nameToFind)
Name方法按Name进行查找与按ID进行查找类似,例如百度首页上面有“登录”超级链接,如图5-28所示。
图5-28 “登录”超级链接
其HTML代码如下:
<a name="tj_login" href=http://passport.baidu.com/?login&tpl=mn>登录</a>
注意,它的name属性为“tj_login”,可以用其作为查找条件来获取登录链接对象,使用方法如程序清单5-17或程序清单5-28所示。
程序清单5-17 C#代码
IWebElement loginButton= driver.FindElement(By.Name("tj_login")); |
程序清单5-18 Java代码
WebElement loginButton= driver.findElement(By.name("tj_login")); |
5.5.3 LinkText(linkTextToFind)
LinkText方法按链接的文本进行查找。例如,百度首页上有“登录”超级链接,如图5-29所示。
图5-29 “登录”超级链接
它的链接文本为属性为“登录”,可以用它作为查找条件来获取登录链接对象。先打开百度页面,然后单击“登录”,代码如程序清单5-19或程序清单5-20所示。
程序清单5-19 C#代码
IWebDriver driver = new FirefoxDriver(); |
程序清单5-20 Java代码
WebDriver driver = new FirefoxDriver(); |
5.5.4 PartialLinkText(partialLinkTextToFind)
PartialLinkText方法按链接的文本进行模糊查找。例如,百度首页上有“登录”超级链接,如图5-30所示。
图5-30 “登录”超级链接
它的链接文本属性为“登录”。PartialLinkText可用于模糊查询,它可以用“录”字作为查找条件来获取“登录”链接对象。先打开百度页面,然后单击“登录”超级链接,代码如程序清单5-21或程序清单5-22所示。
程序清单5-21 C#代码
IWebDriver driver = new FirefoxDriver(); |
程序清单5-22 Java代码
WebDriver driver = new FirefoxDriver(); |
5.5.5 ClassName(classNameToFind)
ClassName方法按链接的文本进行模糊查找。例如,百度贴吧上有“贴吧搜索”超级链接,如图5-31所示。
图5-31 “贴吧搜索”超级链接
使用FireBug查看其HTML代码,如图5-32所示。
图5-32 HTML代码
其Class属性为“j_global_search”,可以用其作为查找条件来获取“贴吧搜索”链接。先打开贴吧页面,然后单击“贴吧搜索”链接,代码如程序清单5-23或程序清单5-24所示。
程序清单5-23 C#代码
IWebDriver driver = new FirefoxDriver(); |
程序清单5-24 Java代码
WebDriver driver = new FirefoxDriver(); |
5.5.6 TagName(TagNameToFind)
TagName方法按标记名称进行查找,并返回第一个匹配项。例如,百度首页有“搜索设置”超级链接,如图5-33所示。
图5-33 登录按钮
使用FireBug查看其HTML代码,可以发现它是整个页面的第一个“a”标记,如图5-34所示。
图5-34 HTML代码
因此,可以用它的标记名称“a”作为查找条件来获取“搜索设置”链接。先打开百度主页,然后单击“搜索设置”超级链接,代码如程序清单5-25和程序清单5-26所示。
程序清单5-25 C#代码
IWebDriver driver = new FirefoxDriver(); |
程序清单5-26 Java代码
WebDriver driver = new FirefoxDriver(); |
本文选自《Selenium自动化测试指南》第五章节,本站经人民邮电出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章:
选择浏览器开始测试—Selenium自动化测试指南(2)
操作页面元素WebElement—Selenium自动化测试指南(4)