我试图在getText()
个实例上执行WebElement
但由于某种原因它无法正常工作:pcresultsList.get(0).getText()
也许Winium
不支持这种方法?
我的代码是:
public void monitorBasic() throws InterruptedException {
monitorFrame = driver.findElement(By.name("BEAM Monitor"));
WebElement resultsFrame = monitorFrame.findElement(By.id("ReportListBox"));
List<WebElement> pcresultsList = resultsFrame.findElements(By.className("TextBlock"));
System.out.println(pcresultsList.get(0).getText());
}
抱歉没有发布我收到的错误 - 网站告诉我我的代码没有缩进,当我试图将其作为代码呈现时,网站告诉我代码太多了。 :)
答案 0 :(得分:1)
您是否尝试过使用:
System.out.println(pcresultsList.get(0).getAttribute("Value"));
还尝试获取元素的其他属性以确认您可以获取信息。
以下代码适用于我:
element = Window.findElement(By.xpath("//*[contains(@ControlType,'ControlType.DataItem') and contains(@Name,'G15')]"));
System.out.println("Cell text: " + element.getText()); //writes Shipments
如果有帮助,请告诉我们。
答案 1 :(得分:0)
据我所知,你试图从一个框架内的元素中获取一些文本。在这种情况下,您需要先切换到帧,然后获取帧内任何元素的文本。
你需要这样做:
将ImplicitlyWait应用2/3秒。
driver.switchTo().frame("BEAM Monitor");
//假设该框架名称为
然后点击框架内的元素:
driver.findElement(By.id("ReportListBox")).click();
创建一个列表以获取列表中的所有元素:
List<WebElement> pcresultsList = driver.findElements(By.className("TextBlock"));
创建一个for循环来迭代元素以获取文本:
for(WebElement pcresult : pcresultsList)
{
System.out.println(pcresult.getText());
}
如果这有助于您,请告诉我。
答案 2 :(得分:0)
我发现使用Winium时,您需要获取Name
属性,因为getText()
无效。