2017-08-02 63 views
-1
<div class="col-md-3 col-sm-3"> 
    <h4>Free Resources</h4> 
    <ul> 
     <li> 
      <a href="/ncert-solutions/ncert-solutions-class-10-maths">NCERT Solutions for Class 10 Maths</a> 
     </li> 
     <li> 
      <a href="/ncert-solutions/ncert-solutions-class-9-maths">NCERT Solutions for Class 9 Maths</a> 
     </li> 
     <li> 
      <a href="/ncert-solutions/ncert-solutions-class-10-science">NCERT Solutions for Class 10 Science</a> 
     </li> 
     <li> 
      <a href="/ncert-solutions/ncert-solutions-class-9-science">NCERT Solutions for Class 9 Science</a> 
     </li> 
     <!-- CBSE Previous Year Paper --> 
     <li> 
      <a href="/contents/question-solutions">CBSE Previous Year Paper</a> 
     </li> 
     <!-- RD Sharma solutions--> 
     <li> 
      <a href="/rd-sharma-solutions/rd-sharma-class-10-solutions">RD Sharma Class 10 Solutions</a> 
     </li> 
     <!-- Tutors SEO Pages--> 
     <li> 
      <a href="/tutors/home-tuition-teacher">Home Tuition</a> 
     </li> 
     <li> 
      <a href="/tutors/maths-tuition-teacher">Math Teacher</a> 
     </li> 
     <li> 
      <a href="/tutors/science-tuition-teacher">Science Teacher</a> 
     </li> 
    </ul>    
</div> 

私は作業しているhtmlを貼り付けました。物事をより明確にするために、class name = 'col-md-3 col-sm-3'を使用して、同じ階層にdivタグが2つ存在します。Selenium WebDriverで "ul"クラスのすべての "li"要素を取得する方法 - PageFactory specific

この質問は役に立ちましたか(How to get all "li" elements of "ul" class in Selenium WebDriver)、私はPageFactoryを使って同じことをする方法を知りたがっていましたか?

ここをクリックしてください。私はリスト<div>の要素(@FindBy注釈を使用)のルートを見つけ、各<a>タグのルーピングを行い、そのWebページの要素リポジトリクラスからこのリストを返すと考えています。これを行うより良い方法はありますか?私は特にこのPageFactoryバージョンがほしいと思う。

+0

参照してください:[私はXをどのように行うのですか?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do -i-do-x)SOに関する期待は、質問するユーザーが自分の質問に答えるだけでなく、その研究、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。また見てください:[ask] – JeffC

答えて

1

ULタグの下に要素のリストを持っている場合は、例えば、

@FindBys(xpath) 
List<WebElement> elements; 

、同じよう@FindBysに

を使用することができます。あなたのxpathは//ul/li/aとなり、あなたは以下のようにページ工場でそれを使うことができます。

@FindBys(xpath="//ul/li/a") 
public List<WebElement> elements; 

あなたが好きあなたのスクリプトまたは方法でそれを呼び出すことができます、私は

Home homePage = new HomePage(driver); 
PageFactory.initElements(driver, homePage); 
homePage.elements.get(0).click //to click on first element 

またはすべての要素を反復処理し、下記のような値を取得するには、要素がホームページ上にあると仮定します。

for(WebElement element:elements) 
    sop(element.getText(); 
+0

あなたは詳しく教えていただけますか?いくつかの例がありますか? – MindingMyBusiness

+0

が答えを更新しました。確認してください。 – Murthi

関連する問題