ページオブジェクトのインスタンス(A) - Javaの+セレン163 Eメールログイン

ページオブジェクトがどのようなものです:

  PageオブジェクトはSelenium2が設けられたスタートコードのデザインモードでページの要素がある場合。核となるアイデアは、、更新、およびその変更のメンテナンス後。分離テストページとWebページの要素と操作を見つけるために、テストクラスを修正する必要はありませんただ、対応するページ要素を見つけるために、コードを変更します。 

163 Eメールログイン含まれます。

どこで:

1. LoginPage.java要素実現ログインを動作させる要素を含む探し、主要なテストページです

2. HomePage.javaは、ログインが成功した後のページにジャンプし、戻り値とログインを確認するためにこれを取るだろうが、操作のログイン方法として成功した要素である、これはテストページの以上であってもよいです

3. LoginTest.javaは、検証ログイン成功/失敗、または他のテストケースを含むことができ、テストのログインページを実行するために使用します

この方法は、別のブラウザを扇情できるドライバから使用4. SeleniumInit.java、

サンプルコード: 

LoginPage.java

1つの インポートorg.openqa.selenium.By。
2  インポートorg.openqa.selenium.WebDriver。
3  輸入org.openqa.selenium.WebElement。
4  インポートjava.util.Listに。
5  輸入java.util.concurrent.TimeUnit。
6  
7  パブリック クラスLoginPage {
 8      webdriverをドライバ。
9  
10      パブリックLoginPage(webdriverをドライバ){
 11          この = .driver ドライバ。
12      }
 13  
14      // 登录方法
15      公衆ホームページログイン(文字列のユーザは、文字列PWD){
 16          // 隐式等待页面的加载
17          driver.manage()タイムアウト()implicitlyWait(10。。、TimeUnit.SECONDS)。
18          WebElement accountLogin = driver.findElement(By.id( "lbNormal" ));
19          accountLogin.click()。
20          // 进入フレーム
21          リスト<WebElement>インラインフレーム= driver.findElements(By.tagName( "IFRAME" ))。
22          文字列ID = iframes.get(0).getAttribute( "ID" )。
23          であれば(!ID = NULL ){
 24              。driver.switchTo()フレーム(ID)。
25          }
26は          WebElement loginEmail = driver.findElement( "メールで送信" By.name( ));
 27          WebElement LOGINPASSWORD = driver.findElement(By.name( "パスワード" ));
 28          WebElement loginButton = driver.findElement(By.id(「doLogin " ));
 29          loginEmail.sendKeys(ユーザ);
 30          loginPassword.sendKeys(PWD)
 31がある         loginButton.click();
 32          // ジャンプフレーム
33である         driver.switchTo()defaultContentは();.    
 34である          )(driver.manage。 。タイムアウト()implicitlyWait(10 、TimeUnit.SECONDS);
 35          // 成功したログインページの後に新しい要素にジャンプするには、現在のページの新しいページと処理と分離
36         返す 新しいホームページ(ドライバ)。
37      }
 38 }

 

HomePage.java

1  インポートorg.openqa.selenium.By;
 2  インポートorg.openqa.selenium.WebDriver;
 3  インポートorg.openqa.selenium.WebElement;
 4  
。5つの パブリック クラスホームページ{
 6。     webdriverをドライバー;
 7  
。8      パブリックホームページ(webdriverをドライバ){
 9。         この .driver = ドライバ;
 10      }
 11  
12である     // ログイン成功した方法、メールが現在のページに類似してプラスの方法ができたか否かを判断
13である     パブリック ブールidExists(){
 14          WebElementユーザーID = driver.findElement(By.id(「spnUid」));
15          のSystem.out.println(userID.getText())。
16          リターンuserID.isDisplayed()。
17      }
 18 }

 

LoginTest.java

1つの インポートorg.openqa.selenium.WebDriver。
2  インポートorg.openqa.selenium.support.PageFactory。
3  輸入org.testng.Assert。
4  インポートorg.testng.annotations.Test。
5  輸入po.selenium.pages.HomePage。
6  インポートpo.selenium.pages.LoginPage。
7  インポートpo.selenium.utils.SeleniumInit。
8  
9  パブリック クラスLoginTest {
 10      文字列のURL = "https://mail.163.com/" 11      @Test
 12      公共 ボイドTC001_Lo​​ginSuccess(){
13          文字列のユーザ= "邮箱账号" 14          文字PWD = "邮箱密码" 15          SeleniumInit seleniumInit = 新しいSeleniumInit()。
16          webdriverをドライバ= seleniumInit.getFFDriver()。
17          試み{
 18              driver.get(URL)。
19              LoginPage loginPage = 新しいLoginPage(ドライバ)
20              PageFactory.initElements(ドライバ、loginPage)。
21              ホームページホームページ= loginPage.login(ユーザ、PWD)。
22              Assert.assertTrue(homePage.idExists()、 "ログインに失敗しました");
 23である          } キャッチ(例外E){
 24              ; e.printStackTrace()
 25          } 最後に{
 26である             )(driver.quit;
 27          }
 28      }
 29  
30      @Test
 31は     公共 ボイドTC002_LoginFailedWithWrongPwd(){
 32          ストリングユーザー=「メールアカウント" ;
 33は、          「エラーメールパスワード文字列のPWD =" ;
 34である          seleniumInit seleniumInit = 新しい新しいseleniumInit();
 35          webdriverをドライバ=seleniumInit.getFFDriver();
 36          試み{
 37 [              driver.get(URL);
 38である              LoginPage LoginPage = 新しい新しいLoginPage(ドライバ);
 39              PageFactory.initElements(ドライバ、LoginPage);
 40              // 同じページ、同じ方法を様々にすることができ試験
41は              ホームページのホームページ= loginPage.login(ユーザー、PWD)
 42は              Assert.assertTrue(homePage.idExists()、 "ログインに失敗しました" );
 43れる          } キャッチ(例外E){
 44は             e.printStackTrace();
 45          } ついに{
 46             driver.quit();
47          }
 48      }
 49 }

 

これらは、すべてのソリューションの後、URLこのような情報は、問題を露出し、他され、主に思考のページ分離を表示するために使用される思考の分離の操作とテストとPageオブジェクトのページは、同様のページ要素が存在しており、作動一緒に結合されています。

 

おすすめ

転載: www.cnblogs.com/fayez/p/11702727.html