Wir verwenden @FindBy Annotation für Get Web-Element mit Page Object Modeling-Konzept.Ausführungsreihenfolge der vererbten Klasse und der @FindBy-Klasse
z.B.
@FindBy(xpath = "//input[@type='text'][@placeholder='Search']")
WebElement searchBox;
aber um searchBox
Element zu erhalten müssen wir PageFactory.initElements(driver, this);
zuerst und dann, nachdem wir auf dieses Element Aktionen ausführen können anrufen.
Ich habe Rahmenakfiling unten entworfen.
Geordnete Klasse:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.PageFactory;
import core.driver.WebDriverManager;
public abstract class BasePO {
static {
System.out.println("Static Block");
}
BasePO() {
System.out.println("initElements");
initElements();
}
private void initElements() {
PageFactory.initElements(getDriver(), this);
}
}
Kinderklasse:
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
public class TestPO extends BasePO{
@FindBy(css = "input[title='Search']")
WebElement searchBox;
@FindBy(css = "input[value='Google Search']")
WebElement searchButton;
public void sendKeys(String inputText){
searchBox.sendKeys(inputText);
}
public void clickOnSearchButton(){
searchButton.click();
}
}
Testklasse:
import org.testng.annotations.Test;
import core.pageobject.TestPO;
public class TestClass{
@Test
public void test123() {
driver = new FirefoxDriver();
driver.get("http://www.gsmarena.com/");
TestPO tpo = new TestPO();
tpo.search("iphone 7");
}
}
Wenn ich den Testfall ausführen: test()
dann nach mir Hinrichtungen Schritte wären:
- Firefox-Treiber erstellt [in Testclass]
- Website wird in Firefox-Browser öffnen [in Testclass]
@FindBy
Anmerkungen im Speicher aufgerufen werden würde zuerst oder geladen (ich denke, es ist ein träges Laden ist) [in TESTPO]- Static Block [in BasePO]
- initElements [in BasePO]
- WebElement von searchbox zugegriffen und Aktion Sendkeys werden kann auf die durchgeführt werden [in Testclass]
Aber wenn ich richtig bin nicht dann, wenn @FindBy
Anmerkungen genannt würde und was die Ausführungsreihenfolge
Warum nicht versuchen, Debug-Punkte auf alle oben genannten. Und sehen Sie sich die Ausführungsreihenfolge an, die Sie wünschen. – nullpointer