selenium-webdriver
Java에서 @FindBy 주석 사용
수색…
통사론
- CLASS_NAME : @FindBy (className = "classname")
- CSS : @FindBy (css = "css")
- ID : @FindBy (id = "id")
- ID_OR_NAME : @FindBy (how = ID_OR_NAME, = "idOrName"사용)
- LINK_TEXT : @FindBy (linkText = "text")
- NAME : @FindBy (name = "name")
- PARTIAL_LINK_TEXT : @FindBy (partialLinkText = "text")
- TAG_NAME : @FindBy (tagName = "tagname")
- XPATH : @FindBy (xpath = "xpath")
비고
주석을 사용하는 방법은 두 가지입니다. 예 :
@FindBy(id = "id")
과
@FindBy(how = How.ID, using ="id")
는 동일하며 둘 다 ID로 요소를 찾습니다. ID_OR_NAME
경우에만 사용할 수 있습니다.
@FindBy(how = How.ID_OR_NAME, using ="idOrName")
PageFactory.initElements()
로 표시된 요소를 찾기 위해 페이지 객체 인스턴스화 한 후 사용해야합니다 @FindBy
주석을.
기본 예제
Page 객체 모델을 사용한다고 가정합니다. 페이지 개체 클래스 :
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
public class LoginPage {
@FindBy(id="loginInput") //method used to find WebElement, in that case Id
WebElement loginTextbox;
@FindBy(id="passwordInput")
WebElement passwordTextBox;
//xpath example:
@FindBy(xpath="//form[@id='loginForm']/button(contains(., 'Login')")
WebElement loginButton;
public void login(String username, String password){
// login method prepared according to Page Object Pattern
loginTextbox.sendKeys(username);
passwordTextBox.sendKeys(password);
loginButton.click();
// because WebElements were declared with @FindBy, we can use them without
// driver.find() method
}
}
그리고 테스트 클래스 :
class Tests{
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
LoginPage loginPage = new LoginPage();
//PageFactory is used to find elements with @FindBy specified
PageFactory.initElements(driver, loginPage);
loginPage.login("user", "pass");
}
}
@FindBy - 구문 확인 섹션을 사용하여 WebElements를 찾는 방법은 거의 없습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow