📜  Selenium-定位器

📅  最后修改于: 2020-12-04 04:52:01             🧑  作者: Mango


使用WebDriver和WebElement类提供的findElement()和findElements()方法来执行Selenium WebDriver中的元素定位。

  • findElement()根据指定的搜索条件返回一个WebElement对象,如果找不到与搜索条件匹配的任何元素,则抛出异常。

  • findElements()返回符合搜索条件的WebElement列表。如果未找到任何元素,则返回一个空列表。

下表列出了用于在Selenium WebDriver中定位元素的所有Java语法。

Method Syntax Description
By ID driver.findElement(By.id ()) Locates an element using the ID attribute
By name driver.findElement(By.name ()) Locates an element using the Name attribute
By class name driver.findElement(By.className ()) Locates an element using the Class attribute
By tag name driver.findElement(By.tagName ()) Locates an element using the HTML tag
By link text driver.findElement(By.linkText ()) Locates a link using link text
By partial link text driver.findElement(By.partialLinkText ()) Locates a link using the link’s partial text
By CSS driver.findElement(By.cssSelector ()) Locates an element using the CSS selector
By XPath driver.findElement(By.xpath ()) Locates an element using XPath query

定位器用法

现在让我们借助https://www.calculator.net了解每种定位器方法的实际用法

按编号

在此,借助ID访问对象。在这种情况下,它是文本框的ID。借助ID(cdensity)使用sendkeys方法将值输入到文本框中。

硒IDE 84

driver.findElement(By.id("cdensity")).sendKeys("10");

按名字

此处,借助名称访问对象。在这种情况下,它是文本框的名称。借助ID(cdensity)使用sendkeys方法将值输入到文本框中。

硒IDE 85

driver.findElement(By.name("cdensity")).sendKeys("10");

按类别名称

在这里,借助类名访问对象。在这种情况下,它是WebElement的类名称。可以使用gettext方法访问该值。

硒IDE 86

List byclass = driver.findElements(By.className("smalltext smtb"));

按标签名称

元素的DOM标记名称可用于在WebDriver中定位该特定元素。使用此方法很容易处理表格。看一下下面的代码。

WebElement table = driver.findElement(By.id("calctable"));
List row = table.findElements(By.tagName("tr"));
int rowcount = row.size();

通过链接文字

此方法有助于找到具有匹配可见文本的链接元素。

Selenium IDE 87

driver.findElements(By.linkText("Volume")).click();

通过部分链接文字

此方法有助于找到具有部分匹配的可见文本的链接元素。

Selenium IDE 87

driver.findElement(By.partialLinkText("Volume")).click();

通过CSS

CSS被用作识别Web对象的方法,但是并非所有浏览器都支持CSS识别。

WebElement loginButton = driver.findElement(By.cssSelector("input.login"));

通过XPath

XPath代表XML路径语言。它是一种查询语言,用于从XML文档中选择节点。 XPath基于XML文档的树表示形式,并提供了通过使用各种条件选择节点来在树中导航的功能。

硒IDE 88

driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");