You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Selenium调用getText获取input值为null,如何写Xpath提取发票号

问题根因

Selenium的getText()方法仅用于获取元素闭合标签之间的可见文本,而<input>是单标签,它的内容存储在value属性中,因此用getText()获取input内容自然会返回空值。另外你原代码里的By.Xpath写法不符合Java Selenium API规范,正确写法是By.xpath(),x为小写,否则会触发编译错误。

解决代码

根据你提供的HTML结构,分两种场景给出对应实现:

场景1:发票号存储在id为eor的输入框中

直接获取input的value属性即可:

// 定位input元素
WebElement eorInput = driver.findElement(By.xpath("//input[@id='eor']"));
// 提取输入框内的发票号
String invoiceNum = eorInput.getAttribute("value");

哪怕input处于禁用状态也不影响getAttribute方法的取值,无需额外处理。

场景2:发票号为input标签外的独立文本Invoice number : 350971854

先定位到包裹input和目标文本的父级p标签,再提取文本后裁剪出发票号:

// 定位包含input元素的父级p标签
WebElement parentP = driver.findElement(By.xpath("//p[./input[@id='eor']]"));
// 获取p标签下所有可见文本
String allContent = parentP.getText();
// 裁剪提取发票号
String invoiceNum = allContent.split("Invoice number : ")[1].trim();
后续写入Excel说明

拿到invoiceNum字符串变量后,你可以使用Apache POI、EasyExcel等Java Excel操作工具,将该字符串写入指定Excel单元格即可。

内容的提问来源于stack exchange,提问作者Subhradip Sinha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:45:01