1
私は自分のウェブサイトの最初の2ページを設定しており、ページの上部にはユーティリティナビゲーションバーを共有しています。 2ページでわかるように、これらの要素を見つけてクリックするために使用したコードを複製する必要がありました。共通の要素を基本ページに移動し、他のページにその基本ページのコードを共有させることができます。セレンのページ設定用のベースページ
私の質問は、重複したコードを新しいファイルに移動するにはどうしたら、他のページからもすべての要素にアクセスできるようにすることです。
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
}