[When(@"I click the Login button")]
public void WhenIClickTheLoginButton()
{
_driver.Click(ElementType.Id, VariableList.LoginButtonId); //Clicks login button first
string currentUrl = _driver.Url;
if (currentUrl == BaseUrls.HomepageUk)
{
_driver.AssertIsTrueByUrl(_driver.Url, BaseUrls.HomepageUk);
}
if (currentUrl == BaseUrls.LogonPageUk) //Takes into account erroneous login
{
_driver.AssertIsTrueByUrl(_driver.Url, BaseUrls.LogonPageUk);
}
if (currentUrl == BaseUrls.PromoPageUk) //Takes into account the possibility of a promotion being displayed
{
_driver.AssertIsTrueByUrl(_driver.Url, BaseUrls.PromoPageUk);
_driver.WaitForElementPresent(ElementType.Id, VariableList.PromoBanner);
_driver.AssertElementDisplayed(ElementType.Id, VariableList.PromoBanner);
_driver.AssertElementDisplayed(ElementType.XPath, VariableList.ContinueToHomepageButton);
_driver.Click(ElementType.XPath, VariableList.ContinueToHomepageButton);
}
}
여러 if 문 대신 case/switch 문으로 변경하려고 고심하고 있습니다. 여러 번 비슷한 로그인 방법이 있습니다.Selenium Webdriver 스위치/사례 C#
이 일을 리팩토링과 같은 소리처럼 부를 것이다. codreview.stackexchange.com을 살펴보십시오. 이 if를 'switch (currentUrl)'로 바꾸면 무엇이 잘못 될 수 있는지는 분명하지 않지만 –