1
나는 내 웹 사이트의 처음 두 페이지를 설정했으며 두 페이지 모두 페이지 상단에 유틸리티 탐색 모음을 공유합니다. 두 페이지에서 볼 수 있듯이 이러한 요소를 찾아 클릭하는 데 사용 된 코드를 복제해야했습니다. 공통 요소를 기본 페이지로 이동 한 다음 다른 페이지에서 해당 기본 페이지의 코드를 공유 할 수 있다는 것을 읽었습니다.셀레늄 pagefactory에 대한 기본 설정
제 질문은 중복 코드를 새 파일로 이동하지만 다른 페이지의 모든 요소에 계속 액세스 할 수 있도록하는 것입니다.
DashboardPage :
public class DashboardPage
{
private IWebDriver driver;
#region WebElement
[FindsBy(How = How.Id, Using = "AgentPAS")]
private IWebElement Policy;
[FindsBy(How = How.Id, Using = "Billing")]
private IWebElement Billing;
[FindsBy(How = How.LinkText, Using = "Activity")]
private IWebElement Activity;
[FindsBy(How = How.LinkText, Using = "Premium")]
private IWebElement Premium;
[FindsBy(How = How.LinkText, Using = "Production Summary")]
private IWebElement ProductionSummary;
[FindsBy(How = How.LinkText, Using = "Quote to Bind")]
private IWebElement QuoteToBind;
#endregion
public DashboardPage()
{
PageFactory.InitElements(ObjectRepository.Driver, this);
}
#region Actions
public void PolicyButton()
{
Policy.Click();
}
public void BillingButton()
{
Billing.Click();
}
public void ActivityLink()
{
Activity.Click();
}
public void PremiumLink()
{
Premium.Click();
}
public void ProductionSummaryLink()
{
ProductionSummary.Click();
}
public void QuoteToBindLink()
{
QuoteToBind.Click();
}
#endregion
}
ClientDetailsOnePage :
public class ClientDetailsOnePage
{
private IWebElement driver;
#region WebElement
[FindsBy(How = How.Id, Using = "AgentPAS")]
private IWebElement Policy;
[FindsBy(How = How.Id, Using = "Billing")]
private IWebElement Billing;
[FindsBy(How = How.XPath, Using = "//input[@fieldref='AccountInput.Title']")]
private IWebElement Title;
[FindsBy(How = How.XPath, Using = "//input[@fieldref='AccountInput.FirstName']")]
private IWebElement FirstName;
[FindsBy(How = How.XPath, Using = "//input[@fieldref='AccountInput.Name']")]
private IWebElement LastName;
[FindsBy(How = How.XPath, Using = "//input[@fieldref='AccountInput.DesignatedAuthority']")]
private IWebElement DesignatedAuthority;
[FindsBy(How = How.XPath, Using = "//span[@data-ref='displayEl']")]
private IWebElement UKResident;
[FindsBy(How = How.LinkText, Using = "Save & Exit")]
private IWebElement SaveExit;
[FindsBy(How = How.LinkText, Using = "Next")]
private IWebElement Next;
#endregion
public ClientDetailsOnePage()
{
PageFactory.InitElements(ObjectRepository.Driver, this);
}
#region Actions
public void PolicyButton()
{
Policy.Click();
}
public void BillingButton()
{
Billing.Click();
}
public void TitleDropDown(string text)
{
Title.SendKeys(text);
}
public void FirstNameTextBox(string text)
{
FirstName.SendKeys(text);
}
public void LastNameTextBox(string text)
{
LastName.SendKeys(text);
}
public void DesignatedAuthorityDropDown(string text)
{
DesignatedAuthority.SendKeys(text);
}
public void UKResidentCheckBox()
{
UKResident.Click();
}
public void SaveExitButton()
{
SaveExit.Click();
}
public void NextButton()
{
Next.Click();
}
#endregion
}