2017-08-02 78 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標籤。如何在Selenium WebDriver中獲得「ul」類的所有「li」元素 - PageFactory specific

我覺得這個問題很有幫助(How to get all "li" elements of "ul" class in Selenium WebDriver),但我想知道如何使用PageFactory做同樣的事情?

請幫我這裏。我想我會找到列表<div>元素的根目錄(使用@FindBy註釋),併爲每個<a>標記執行循環,並從該網頁的Element存儲庫類返回此列表。有一個更好的方法嗎?我特別想要這個PageFactory版本。

+0

參見:[?我怎麼做X](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do -i-do-x)對SO的期望是用戶提出一個問題不僅僅是研究來回答他們自己的問題,而且還分享研究,代碼嘗試和結果。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案!另請參見:[問] – JeffC

回答

1

您可以使用@FindBys

一樣,

@FindBys(xpath) 
List<WebElement> elements; 

例如,如果有下UL標記元素的列表。那麼你的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

相關問題