com.robotium.solo.By Maven / Gradle / Ivy
package com.robotium.solo;
/**
* Used in conjunction with the web methods. Examples are By.id(String id) and By.cssSelector(String selector).
*
* @author Renas Reda, [email protected]
*
*/
public abstract class By {
/**
* Select a WebElement by its id.
*
* @param id the id of the web element
* @return the Id object
*/
public static By id(final String id) {
return new Id(id);
}
/**
* Select a WebElement by its xpath.
*
* @param xpath the xpath of the web element
* @return the Xpath object
*/
public static By xpath(final String xpath) {
return new Xpath(xpath);
}
/**
* Select a WebElement by its css selector.
*
* @param selectors the css selector of the web element
* @return the CssSelector object
*/
public static By cssSelector(final String selectors) {
return new CssSelector(selectors);
}
/**
* Select a WebElement by its name.
*
* @param name the name of the web element
* @return the Name object
*/
public static By name(final String name) {
return new Name(name);
}
/**
* Select a WebElement by its class name.
*
* @param className the class name of the web element
* @return the ClassName object
*/
public static By className(final String className) {
return new ClassName(className);
}
/**
* Select a WebElement by its text content.
*
* @param textContent the text content of the web element
* @return the TextContent object
*/
public static By textContent(final String textContent) {
return new Text(textContent);
}
/**
* Select a WebElement by its tag name.
*
* @param tagName the tag name of the web element
* @return the TagName object
*/
public static By tagName(final String tagName) {
return new TagName(tagName);
}
/**
* Returns the value.
*
* @return the value
*/
public String getValue(){
return "";
}
static class Id extends By {
private final String id;
public Id(String id) {
this.id = id;
}
@Override
public String getValue(){
return id;
}
}
static class Xpath extends By {
private final String xpath;
public Xpath(String xpath) {
this.xpath = xpath;
}
@Override
public String getValue(){
return xpath;
}
}
static class CssSelector extends By {
private final String selector;
public CssSelector(String selector) {
this.selector = selector;
}
@Override
public String getValue(){
return selector;
}
}
static class Name extends By {
private final String name;
public Name(String name) {
this.name = name;
}
@Override
public String getValue(){
return name;
}
}
static class ClassName extends By {
private final String className;
public ClassName(String className) {
this.className = className;
}
@Override
public String getValue(){
return className;
}
}
static class Text extends By {
private final String textContent;
public Text(String textContent) {
this.textContent = textContent;
}
@Override
public String getValue(){
return textContent;
}
}
static class TagName extends By {
private final String tagName;
public TagName(String tagName){
this.tagName = tagName;
}
@Override
public String getValue(){
return tagName;
}
}
}