ホーム>source

私は最近、セレンWebDriverについて学び始め、さまざまなソースから多くのことを学びましたが、クリーン/プロフェッショナルグレードのスクリプトがどのように見えるべきか、どのようにコンテンツを書くべきかについての良いアイデアを持っていません。

これは、テストとして作成したログインの例ですが、何を変更できますか?

package Facebook;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Login {
    WebDriver driver = new ChromeDriver();
    public void login() throws InterruptedException
    {
        driver.get("http://www.facebook.com");
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        WebElement user = driver.findElement(By.id("email"));
        WebElement password = driver.findElement(By.id("pass"));
        user.sendKeys("user_test");
        password.sendKeys("password_test");
        Thread.sleep(3000);
        user.clear();
        password.clear();
        WebElement submit = driver.findElement(By.id("u_0_u"));
        if(submit.isDisplayed())
        {
            System.out.println("\u001B31;1m Succes");
        }
        else
        {
            System.out.println("\u001B31;2m Fail");
        }
    }
    public static void main(String[] args) throws InterruptedException {
        Login obj = new Login();
        obj.login();
    }
}

あなたの答え
  • 解決した方法 # 1

    ページオブジェクトモデルについて学ぶのに時間をかける必要があります。いくつかのテストをビルドする場合、組織を大幅に強化し、コードをクリーンに保ち、メンテナンスの負担を軽減します。

    Thread.sleep() を避ける  そして暗黙の待機。代わりに WebDriverWait を好む 。

    独自のロギング/レポートを作成しないでください。代わりに、JUnitまたはTestNGを使用してください。それらは十分に確立されており、ロギングだけでなく、テスト、実行、レポートなどの編成を処理することで多くの時間を節約できます。

    注:コードレビューを求めるような音のSOに関する質問には注意してください。そのためのサイトは、http://codereview.stackexchange.comにあります。

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ python - 非効率的な関数は短いテキストでロードされますが、分析するための超長いテキストが与えられた場合はロードできません