今天在写自动化测试脚本的时候要获取一个输入框中的文本写了如下脚本:
getAndSwitch("http://cas.minshengnet.com:14080/register/eRegisterPage.shtml");
inputById("txtPhoneNum", "13599101693");
inputById("txtSMS", "1234567");
clickAndWait(By.xpath("//tbody/tr[2]/td"));
String str = driver.findElement(By.id("txtPhoneNum")).getText();
System.out.println(str+"!!!!!!!!!!!!!!!!");
结果打印出来的str是空白,也就是说并没有获取到输入框中的文本。
研究发现:对于页面上输入类型的元素(input,textarea等),是不能通过getText()获取到相应的文本的。如果想获取输入的值可以通过driver.findElement(By.id("txtPhoneNum")).getAttribute("value"); 得到。
通过String value = driver.findElement(By.id("txtPhoneNum")).getAttribute("value"); 即可获取到值“13599101693"。
通过String type = driver.findElement(By.id("txtPhoneNum")).getAttribute("type");则对应可获得值“text”。