IList <iwebelement>可以使用PageObject吗?

时间:2016-12-28 12:40:37

标签: c# list selenium pageobjects

我有一个简单的循环点击测试列表。

循环工作顺利,但我想知道是否可以使用Page-object? 我似乎无法找到其他人是否已经做到了。任何帮助将不胜感激。

这就是我所拥有的

public SeleniumPage ClickLink()
{
   IList<IWebElement> Items= PropertiesCollection.driver.FindElements(By.
                       XPath("html/body/div/div[2]/div/div[1]/div[1]/ul/li"));
   foreach (IWebElement Item in Items)
   {
      Item.ChinsayClick();
      System.Threading.Thread.Sleep(2000);
   }
   return new SeleniumPage();
}

但宁愿有类似的东西。

[FindsBy(How = How.XPath, Using = "html/body/div/div[2]/div/div[1]/div[1]/ul/li")]
public IWebElement List { get; set; }

public SeleniumPage ClickLink()
{
   IList<IWebElement> Items= List;
   foreach (IWebElement Item in Items)
   {
      Item.ChinsayClick();
      System.Threading.Thread.Sleep(2000);
   }
   return new SeleniumPage();
}

1 个答案:

答案 0 :(得分:0)

看起来这是一个简单的答案,所以我会回答我自己的问题,如果它可以帮助其他人。

我们可以将IList直接添加到PageObject作为

Public IList<IWebElement>

然后从循环(IWebElement List in Lists)

中调用它

解决方案:

[FindsBy(How = How.XPath, Using = "html/body/div/div[2]/div/div[1]/div[1]/ul/li")]
public IList<IWebElement> Lists { get; set; }

public SeleniumPage()
{
    foreach (IWebElement List in Lists)
    {
        List.ChinsayClick();
        System.Threading.Thread.Sleep(2000);
    }
    return new SeleniumPage();
}