如何从元素中提取文本,找到元素但文本为空?

How to extract text from element, element found but text is empty?

我正在 Android 设备上进行移动自动化测试,我正在尝试使用 Xpath 和 Selenium 从元素中提取特定文本。我已经尝试 Javascript,在行前添加睡眠等,但没有成功。代码找到了元素,但它没有 return 预期的值“5+5”,而是 return 空值,因为它没有找到任何值。问题是什么?我怎样才能提取我需要的值?

这是一些代码:

HashMap<String, String> scrollObject = new HashMap<>();
JavascriptExecutor js = driver;
WebElement myelement = driver.findElement(By.xpath(AppConstant.ANDROID_COMBINAZIONE_VALUE));
            
String text = scrollObject.put("element", ((RemoteWebElement) myelement).getText());
//String value = seetest.hybridRunJavascript(AppConstant.ANDROID_COMBINAZIONE_VALUE, 0, "return arguments[0].text");
System.out.println(text + ":**********************************************");
Assert.assertEquals(text.replaceAll("\s", ""), comb.replaceAll("\s", ""));

你确定它是return空值吗?

据我了解,您的代码似乎不正确,null return 表示该地图先前将 null 与键相关联。

String text = scrollObject.put("element", ((RemoteWebElement) myelement).getText());

注意:这总是会产生 Null 结果。

请查看以下内容link以深入了解:

补丁:

scrollObject.put("element", ((RemoteWebElement) myelement).getText());
String text = scrollObject.get("element");

完整代码:

    HashMap<String, String> scrollObject = new HashMap<>();
    JavascriptExecutor js = driver;
    WebElement myelement = driver.findElement(By.xpath(AppConstant.ANDROID_COMBINAZIONE_VALUE));
    scrollObject.put("element", ((RemoteWebElement) myelement).getText());
    String text = scrollObject.get("element");
    //String value = seetest.hybridRunJavascript(AppConstant.ANDROID_COMBINAZIONE_VALUE, 0, "return arguments[0].text");
    System.out.println(text + ":**********************************************");
    Assert.assertEquals(text.replaceAll("\s", ""), comb.replaceAll("\s", ""));