无法使用Selenium WebDriver使用getText()和getAttribute(" value")方法访问Textbox文本

时间:2016-08-06 06:21:59

标签: java selenium gettext

无法使用Selenium WebDriver使用getText()和getAttribute(" value")方法访问Textbox文本。 这里我想得到名字的文字,当我使用getText()和getAttribute(" value")方法时,我得到的是null结果。

这里的网页和元素代码如何 enter image description here

这是我的代码:

WebElement T = driver.findElement(By.id("txtFirstName"));
System.out.println("Frist Name is : " + T.getAttribute("value"));

&安培;

System.out.println("Frist Name is : " + T.getText());

输出:

Frist Name is : 

PLZ帮助。

3 个答案:

答案 0 :(得分:1)

实际上你正在调用错误的方法从文本框中获取价值

  • 首先调用getText() input,这对getText()元素无效,因为getAttribute("Value")会在您查找输入值时返回元素的内部文本

    < / LI>
  • 第二,您尝试使用getAttribute("value")从输入中获取值,这是错误的,应该是v表示driver.findElement(By.id("textFirstName")).getAttribute("value"); 是小写的。

所以你应该尝试如下: -

JavascriptExecutor

Edited1 : - 如果遗憾的是,上述内容不起作用,您可以尝试使用String value = (String)((JavascriptExecutor).executeScript("return arguments[0].value", driver.findElement(By.id("textFirstName"))); ,如下所示:

angularjs

Edited2 : - 我看到你的元素与angularjs一起使用,所以你应该尝试使用JavascripyExecutor使用String value = (String)((JavascriptExecutor).executeScript("return angular.element(arguments[0]).scope().user.st_first_n‌​ame", driver.findElement(By.id("textFirstName"))); System.out.println(value); 获取价值,如下所示:

var o = {z:1, f:2, a:7}
    p = Object.assign({},o),
    q = Object.assign(o)
console.log(o, p, o === p);
console.log(o, q, o === q);

答案 1 :(得分:0)

以下是如何获取文本的答案。 (这里使用AngularJS来显示文本框的值)

JavascriptExecutor js = (JavascriptExecutor)driver;     
String addr = js.executeScript("return angular.element(document.getElementById('txtFirstName')).scope().user.st_first_name;").toString();

@Saurabh Gaur - 感谢您的帮助: - )

答案 2 :(得分:-1)

试试这个 尝试使用单引号

WebDriver driver= new FirefoxDriver(); //or wharever broeser you are using
driver.get(url); //url of your webpage
WebElement firstName=driver.findElement(By.ID("txtFirstName");
String fn=firstName.getAttribute('value');