我正在尝试在Selenium中创建一个Web元素列表。我现在的问题是有4个可以全部点击的GIF但都保持相同的值。我需要列出它们,以便我可以选择我想要的那个。这是我的代码行
[1]
我在网上看到的每个地方都有一个合适的答案。但是我收到错误:
错误1无法隐式转换类型' System.Collections.ObjectModel.ReadOnlyCollection'到' System.Collections.Generic.List'
有没有人知道如何完成我要找的东西或如何解决这个错误?
答案 0 :(得分:4)
将其转换为ReadOnlyCollection
,并确保您拥有using System.Collections.Generic;
导入
IReadOnlyCollection<IWebElement> createGifs = driver.FindElements(By.XPath("//img[@ src='images/document_create.gif']"));
如果您确实想使用List
,请使用ToList()
List<IWebElement> createGifs = driver.FindElements(By.XPath("//img[@ src='images/document_create.gif']")).ToList();
修改强>
默认情况下,澄清Selenium的ISearchContext.FindElements
方法返回ReadOnlyCollection<IWebElement>
。见this
答案 1 :(得分:0)
您可以将IReadOnlyCollection
转换为列表。
例如,如果您要搜索li
,则应该执行以下操作。
//get readonly list
IReadOnlyCollection<IWebElement> li_element_list =driver.FindElements(By.TagName("li"));
//create new list
List<IWebElement> allHandles2 = new List<IWebElement>(li_element_list);
答案 2 :(得分:0)
List<IWebElement> createGifs = new List<IWebElement> (driver.FindElements(By.XPath("//img[@ src='images/document_create.gif']")));
这对我来说很好。