2014-06-13 22 views
0

我正在嘗試在我正在測試的網站的標題中編寫鏈接的頁面類。下面我有循環瀏覽列表以選擇Selenium中的元素

<ul> 

    <li><a href="/" title="Home">Home</a></li> 
    <li><a href="/AboutUs" title="About Us">About Us</a> </li> 
    <li><a href="/Account" title="Account">Account</a></li> 
    <li><a href="/Account/Orders" title="Orders">Orders</a></li> 
    <li><a href="/AdministrationPortal" title="Administration Portal">Administration Portal</a></li> 
</ul> 

我想要做的就是這些存儲到一個列表,然後當用戶選擇其中一個鏈接,下面的鏈接結構,將採取然後他們應該去的網頁。

我已經開始用下面的代碼下面

 List<IWebElement> headerElements = new List<IWebElement>(); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Home"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("About Us"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Account"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Orders"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Administration Portal"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Log in/Register"))); 
     headerElements.Add(WebDriver.FindElement(By.LinkText("Log off"))); 

我想使用一個for循環來做到這一點,這會是最好的辦法。我試圖避免書面方式方法類似下面的每一個環節

public void SelectCreateNewReferralLink() 
    { 
     var selectAboutUsLink = (new WebDriverWait(WebDriver, new TimeSpan(50))).Until 
      (ExpectedConditions.ElementExists(By.CssSelector("#main > a:nth-of-type(1)"))); 
     selectCreateNewReferralLink.Click(); 
    } 

我使用C#,與webdriver的嘗試寫這

任何幫助將是巨大的

感謝

Chris

回答

1

您可以有一個知道列表根(ul元素)並將標題(字符串或枚舉)作爲參數的方法。

喜歡的東西(在僞Java代碼):

selectLink(String title) { 
    driver.findElement(By.cssSelector("ul li a[title='" + title + "']").click(); 
} 
+1

我喜歡這個解決方案不是將其存儲到一個Java列表更好。 – sircapsalot