私はセレンの初心者であり、多くの研究の後、私は停止するようになりました。私は以下の持っているものに似たコードを使用してさまざまな例を見てきました:コーディングプラクティスに関するセレンの懸念
class LoginPage { private IWebDriver driver; public LoginPage(IWebDriver driver) { this.driver = driver; } //HomePage appears when Login successful public HomePage DoLogin(string user, string pass) { driver.FindElement(By.Name("userfield")).SendKeys(user); driver.FindElement(By.Name("passfield")).SendKeys(pass).Submit(); //what is the above fails and i stay on the LoginPage? returning a HomePage object will be a bad idea here HomePage homepage = new HomePage(driver) PageFactory.InitElements(driver, homepage) return homepage; } } class HomePage{ public HomePage(WebDriver driver) { this.driver = driver; } public void clickExitButton() { exitButton.click(); } public LoginPage logout() { clickExitButton(); LoginPage loginpage = new LoginPage(driver) PageFactory.InitElements(driver, loginpage); return loginpage; } }
私の質問:
何のクラスのいずれかは、彼らが行うことになっているものを行うに失敗していますか?ログインに失敗したらどうなりますか?それでもHomePageオブジェクトは返されます。これは当てはまらないはずですよね?失敗に取り組むためには何ができるでしょうか?私が見た例のほとんどは、物事が「うまくいく」ことが正しく働くと想定しています。
上記の実装はC#では正しいですか?私が見てきた例のほとんどは、Javaのためのものである - 私はC#のを知っているように、単にCの#に変換したい:)
ありがとう!
ありがとうございました!それはまさに私が探していたものです。 –
この確認は 'HomePage'を使ったコードではなく、ホームページのコンストラクタが現在表示されているページが実際にホームページであることを確認し、そうでなければ例外をスローするべきです。現在のページでない限り、 'HomePage'をインスタンス化しようとしないでください。 –
こんにちはロス、あなたのフィードバックに感謝します。しかし興味深いことですが、コンストラクタに例外をスローするのは良い方法ですか? –