我想通过在Selenium中使用Findby从String数组创建一个WebElement列表。
My String数组具有以下值:
String [] s1 = {"Sale Condo", "Rent Condo"};
我正在循环这个String数组,通过这样做来创建一个WebElement列表:
List<WebElement> allElem=new ArrayList<WebElement>();
for (String s: s1){
@FindBy(linkText=s)
allElem.add();
}
我无法做到。请帮助我如何实现这一目标。
答案 0 :(得分:1)
您确定不会抛出编译错误。
你可以使用这样的东西
List<WebElement> allElem=new ArrayList<WebElement>();
for (String s: s1){
allElem.add(driver.findElement(By.linkText(s)));
}
答案 1 :(得分:0)
我不是100%确定这是否也适用于java,但是对于C#,你不能这样做,因为Using
属性期望[FindsBy(How = How.Id, Using = "elementID")]
private IWebElement Element {get; set;}
的常量值。
意味着以下代码正常工作:
string idOfTheElement = "elementID";
[FindsBy(How = How.Id, Using = idOfTheElement)]
private IWebElement Element {get; set;}
但是这个错误了:
string[] array = new string[] {"id1", "id2"};
List<IWebElement> allElem = new List<IWebElement>();
foreach(var s in array)
{
var element = driver.FindElement(By.Id(s));
allElem.Add(element);
}
但是你可以通过使用getter实现这一点:
{{1}}