Un bon exemple de travail de Selenium2 et webdriver
J'ai été en utilisant le sélénium 1, mais maintenant vous souhaitez migrer vers selenium2/webdriver. Pour être honnête, je trouve un peu difficile à démarrer avec selenium2/webdriver. En substance, je ne sais pas comment travailler entre les objets de page. Voici mon exemple:
public class LoginPage {
private final WebDriver driver;
public LoginPage(WebDriver driver) {
this.driver = driver;
}
public void loginAs(String username, String password) {
driver.get("http://url_to_my_webapp");
driver.findElement(By.id("username")).sendKeys(username);
driver.findElement(By.id("pwd")).sendKeys(password);
driver.findElement(By.className("button")).submit();
}
public static void main(String[] args){
LoginPage login = new LoginPage(new FirefoxDriver());
login.loginAs("user", "pass");
}
}
Maintenant, après que l'utilisateur est connecté, une redirection de page différente se produit. Comme je le comprends, je dois maintenant faire une nouvelle page de l'objet qui représente la page en cours... Le fait est que je ne sais pas comment? Où puis-je trouver de bons exemples de travail qui vont au-delà du "hello world"?
Comment dois-je continuer cet exemple?
Merci d'avance!
source d'informationauteur babazumbula
Vous devez vous connecter pour publier un commentaire.
Ces sites à la fois donner quelques exemples:
http://luizfar.wordpress.com/2010/09/29/page-objects/
http://www.wakaleo.com/blog/selenium-2-web-driver-the-land-where-page-objects-are-king
Cette page donne quelques détails sur l'utilisation de PageFactory à l'appui des objets de page:
http://code.google.com/p/selenium/wiki/PageFactory
Vous pouvez prolonger votre exemple de travailler avec des objets de page par la création d'une classe pour chaque page, par exemple:
et l'évolution se connecter en tant que de retourner une classe qui représente la page que le navigateur accède à après la connexion:
Cette question est assez vieux, mais j'ai pensé qu'il pourrait encore être le partage de la valeur.
En général, je vais d'abord de la création de la page des classes d'objets.
Puis-je créer une catégorie distincte pour le test de logique, où vous mettriez votre utilisateur "workflow" des clics et des autres page interactions. À partir de l'exemple de code fourni, je suis en supposant que cette classe serait de remplacer le main(). C'est aussi la classe où je inclure des choses comme testNG/junit, test annotations, et dataProviders (pas strictement nécessaire, mais si vous utilisez ces choses, qui peuvent être utiles à la note) Dans cette classe, vous pouvez instancier les classes pour les pages vous permettra d'interagir avec comme vous en avez besoin depuis le webdriver objet que vous avez créé les contrôles du navigateur, la page des catégories.
Faire les choses de cette façon permet à de simples changements de tester des flux de travail, et aussi à la page des objets dans le cas où les pages sont modifiées, ou si vous avez de nouvelles exigences de test.
Mon préféré des effets secondaires de cette méthode est que la classe avec le flux de travail peut être très lisible "script" de l'épreuve avec tous de la laide de détails dans les tests réels cachés sous les appels de ce genre loginPage.Login() et loginPage.LoginSucceeded() pour un casual passe ne voit pas les détails des informations d'identification des utilisateurs des recherches, de la manipulation 404/400, de trouver et de cliquer sur le bouton login, etc.