我正在尝试从Selenium测试中得到反馈,而我最接近解决方案的是:
driver.findElement(By.className('classname')).getText();
但要使其有效,我必须找到所有具有相同类名的元素,所以我尝试将其更改为:
driver.findElements(By.className('classname')).getText();
但是我收到了错误:
TypeError:driver.findElements(...)。getText不是函数
有关如何修复它的建议或具有等效功能的代码的想法吗?
答案 0 :(得分:0)
问题是.findElements()
返回一个集合,而.getText()
对集合不起作用,只对单个元素起作用。如果你想要每个元素的文本,你需要遍历集合并在循环内的每个元素上获取文本。
如果您需要有关循环收集的更多信息,请参阅this reference。
答案 1 :(得分:0)
由于findElements
返回一个集合,您可以使用map
方法遍历集合并获取所有元素的文本。
let array_of_elements = driver.findElements(By.className('some_classname'));
//get the text from the elements in an another array
let text_of_elements = array_of_elements.map((array_of_text,index,array_of_elements)=>{
return array_of_text.getText();
});
了解地图方法here。
答案 2 :(得分:-1)
您可以使用以下方式获取文字集:
List<WebElement> findData = driver.findElements("******");
for (WebElement webElement : findData) {
String getValueofString = webElement.getText();
}