2016-12-28 3 views
0

私はリストをクリックしてテストする簡単なループを持っています。IList <IWebElement>は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(); 
      } 
+1

あなたが持っているものとの問題は何ですか? – Guy

+0

よく...私はこれがかなり簡単に修正することに気づいた前に尋ねた=/ すぐに私の答えを投稿します。 – Dymond

答えて

0

が見える、だから、他のいくつかの体を助けることができれば、私は自分の質問にお答えします。

我々は

Public IList<IWebElement> 

としてのPageObjectに直接のIListを追加し、ちょうどループからそれを呼び出すことができます

ソリューション:

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

これを元に戻ってこれを答えとして受け入れるようにして、質問に回答としてマークを付けるようにしてください。 – JeffC

関連する問題