2016-06-10 1 views
0

Je suis nouveau à PageFactory et en se référant ce tutoriel https://www.toptal.com/selenium/test-automation-in-selenium-using-page-object-model-and-page-factorypage classe à l'aide PageFactory

Un exemple de cette page:

public class HomePage { 
    private WebDriver driver; 

    //Page URL 
    private static String PAGE_URL="https://www.toptal.com"; 

    //Locators 

    //Apply as Developer Button 
    @FindBy(how = How.LINK_TEXT, using = "APPLY AS A DEVELOPER") 
    private WebElement developerApplyButton; 

    //Constructor 
    public HomePage(WebDriver driver){ 
     this.driver=driver; 
     driver.get(PAGE_URL); 
     //Initialise Elements 
     PageFactory.initElements(driver, this); 
    } 

    public void clickOnDeveloperApplyButton(){ 

     developerApplyButton.click(); 

    } 
} 
  1. Pourquoi créer une instance privée de WebDriver? Il apparaît avec une ligne jaune pour moi. Quand utiliser how = HOW et quand on peut tout de suite utiliser xpath= //id..?
  2. Dans le constructeur, nous passons à nouveau WebDriver paramètres?

Répondre

0
  1. La ligne jaune est parce que vous n'utilisez pas la variable pilote déclarée avec la classe, mais celui que vous passez comme variable au constructeur. Essayez d'utiliser:

    this.driver.get(PAGE_URL); //Initialise Elements PageFactory.initElements(this.driver, this);

  2. Vous pouvez utiliser xpath = "//div" tout de suite lorsque vous ne l'utilisez how.LINK_TEXT que vous devez également fournir le texte pour rechercher le lien si vous souhaitez localiser un élément via LINK_TEXT.

  3. Dans le constructeur, vous transmettez l'instance du pilote. Lorsque l'objet page est créé, il possède une instance de pilote, car ce n'est pas la page qui instancie le pilote.