Java 如何检索文本字段中的文本

Java 如何检索文本字段中的文本,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,考虑文本字段的HTML <input id="employeeId" class="formInputText" type="text" value="0013" name="employeeId" maxlength="10"/> 我有以下代码: driver.findElement(Btn_Save).click(); boolean mandatory_firstName = (first_Name != null && !first_Name.isEmpt

考虑文本字段的HTML

<input id="employeeId" class="formInputText" type="text" value="0013" name="employeeId" maxlength="10"/>
我有以下代码:

driver.findElement(Btn_Save).click();

boolean mandatory_firstName = (first_Name != null && !first_Name.isEmpty() && !first_Name.trim().isEmpty());
boolean mandatory_lastName = (last_Name != null && !last_Name.isEmpty() && !last_Name.trim().isEmpty());
boolean mandatory_userName = (user_Name != null && !user_Name.isEmpty() && !user_Name.trim().isEmpty());
boolean mandatory_Password = (Pass != null && !Pass.isEmpty() && !Pass.trim().isEmpty());
boolean mandatory_ConfPass = (Confirm_Pass != null && !Confirm_Pass.isEmpty() && !Confirm_Pass.trim().isEmpty());

if((mandatory_firstName && mandatory_lastName && mandatory_userName && mandatory_Password && mandatory_ConfPass) == false)
    {
        Assert.fail("Error: One of the mandatory fields is missing text. \n");
    }

else
    {
        boolean PassConfirmation = (Pass.equals(Confirm_Pass));
        if(PassConfirmation == false)
        {
            Assert.fail("Error: Password and Confirm Password did not match. Run Test again with same passwords. \n");
        }
        else
        {
            WebElement employeeID = driver.findElement(By.xpath("//input[@id='employeeId']"));
            String empID = employeeID.getText();
            System.out.println("ID is: "+empID);
        }
    }
这段代码从单击save按钮开始。然后检查必填字段和密码,确认密码。 在同一页面上,有一个employee id的文本字段,其中包含一些预设值。我想提取那个值。我试图创建该字段的webelement并将其getText()保存,但当我运行脚本时,它会给我NOSCHELEMENTFOUND异常,堆栈跟踪将我引用到
webelement employeeID=driver.findElement(By.xpath(//input[@id='employeeID'])命令。

使用以下代码:

String value =   driver.findElement(By.id("employeeId")).getCssValue("value");
使用以下代码:

String value =   driver.findElement(By.id("employeeId")).getCssValue("value");

获取所需的属性,如下所示

String valAttr = driver.findElement(By.id("employeeId")).getAttribute("value");

希望这有助于获得所需的属性,如下所示

String valAttr = driver.findElement(By.id("employeeId")).getAttribute("value");

希望这对您有所帮助

以下是获取WebElement属性值的方法-

String empID = driver.findElement(By.id("employeeId")).getAttribute("value");
如果您想以整数形式使用empID,请使用下面的代码-

int empIDval = Integer.parseInt(empID);

下面是获取WebElement属性值的方法-

String empID = driver.findElement(By.id("employeeId")).getAttribute("value");
如果您想以整数形式使用empID,请使用下面的代码-

int empIDval = Integer.parseInt(empID);

一旦有了表示输入字段的WebElement,只需对其调用getText()?是的,关于这一点。我已经试过了,但由于某种原因,当我使用WebElement时,我的脚本抛出了NoTouchElementFound异常。将用我的代码编辑帖子。啊,是的,我没有正确阅读问题。它是一个输入字段,而不是包含TextNode的元素。我想Karthik的答案就在这里。getText只返回文本值,但这是属性值,您需要使用字符串empID=employeeID.getAttribute()@uzii,听起来您需要等待元素可见,如果它从来都不可见,那就弄清楚为什么它实际上不可见。一旦你有了表示输入字段的WebElement,就对它调用getText()?是的,关于这一点。我已经试过了,但由于某种原因,当我使用WebElement时,我的脚本抛出了NoTouchElementFound异常。将用我的代码编辑帖子。啊,是的,我没有正确阅读问题。它是一个输入字段,而不是包含TextNode的元素。我想Karthik的答案就在这里。getText只返回文本值,但这是属性值,您需要使用字符串empID=employeeID.getAttribute()@uzii,听起来您需要等待元素可见,如果它从未可见,请找出它实际上不可见的原因。