5.5 查找条件对象By

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

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

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


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


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


[b]5 ClassName(classNameToFind)[/b]
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();


[b]6 TagName(TagNameToFind)[/b]
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();


[b]7 XPath(xPathToFind)[/b]
如果以上查找方法都无法定位到指定对象,那么可以按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("找到文本框");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值