IList<IWebElement> 可以与 PageObject 一起使用吗?

Can IList<IWebElement> work with PageObject?

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

循环运行流畅,但我想知道是否可以使用页面对象? 我似乎找不到其他人是否做过。任何帮助将不胜感激。

这就是我的

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();
}

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

我们可以将 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();
}