循环遍历List以选择Selenium中的Element
本文关键字:Selenium 中的 Element 选择 遍历 List 循环 | 更新日期: 2023-09-27 18:08:35
我正试图为我正在测试的网站的标题内的链接写一个页面类。我在
下面有以下链接结构<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试图写这个
任何帮助都将是伟大的
感谢克里斯可以有一个方法,它知道列表的根(ul元素),并接受标题(字符串或enum)作为参数。
类似于(在伪java代码中):
selectLink(String title) {
driver.findElement(By.cssSelector("ul li a[title='" + title + "']").click();
}