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("找到文本框");

你可能感兴趣的:(对象)