官术网_书友最值得收藏!

Dissecting the By class

The By class is an abstract class that has eight static methods and eight inner classes. Let's understand the structure of the By class.

The following code skeleton shows a fragment of the structure of the By class:

public abstract class By {
public static By id(String id);
public static By cssSelector(String css);
public static By name(String name);
public static By linkText(String text);
public static By className(String className);
public static By tagName(String tagName);
public static By partialLinkText(String partialLinkText);
public static By xpath(String xpath);
public static class ById extends By {
WebElement findElement(By by);
List <WebElement> findElements(By by);
}
}
Note: Inner classes are present corresponding to all the static methods. There are inner classes such as ByName, ByTagName, and so on.

Inner classes similar to ById exist for name, linkText, xpath, and so on. We will be using the two static methods xpath and cssSelector to design what are called customized xpath and css. Let's try to understand the various mechanisms to access the DOM elements. There are eight ways to access WebElements using the static methods in the By class. We will just be covering access using static methods.

We will look at each of the eight methods individually, and then we will adopt a better approach using the relative (customized) XPath, which will cover each method internally:

  • By.id: Uses the id attribute of the element to locate. For example, By.id("userid").
  • By.name: Uses the name attribute of the element to locate. For example, By.name("username").
  • By.className: Uses the class attribute of the element to locate. For example, By.className("class1").
  • By.linkTextUses the text of any anchor link to locate. For example, By.linkText("Click here to Login").
  • By.partialLinkTextUses the partial text of any anchor link to locate. For example, By.partialLinkText("Login"). 
  • By.xpath: Uses the XPath of the element to locate. For example, By.xpath("http://*[text()='Login']").
  • By.cssSelector: Uses CSS selectors to locate. For example, By.cssSelector(".ctrl-p"). 
  • By.tagName: Uses tag names, such as input, button, select, and so on to locate. For example, By.tagName("input").
主站蜘蛛池模板: 仁布县| 丰都县| 青海省| 塔河县| 宜君县| 安顺市| 尚义县| 泰来县| 巴楚县| 会昌县| 弥勒县| 十堰市| 嘉义县| 定结县| 唐山市| 密山市| 定州市| 陵川县| 千阳县| 华阴市| 牟定县| 庆阳市| 昌黎县| 台南县| 綦江县| 广饶县| 宁化县| 安吉县| 即墨市| 交城县| 雅江县| 阳新县| 孙吴县| 江孜县| 分宜县| 曲阳县| 洞口县| 庐江县| 襄垣县| 乳山市| 泽库县|