使用selenium java需要从angularjs中检索数据

时间:2016-05-23 10:15:45

标签: angularjs selenium selenium-webdriver

我需要使用angularjs从数据库中检索数据到selenium java。

我尝试了以下步骤,但我无法检索数据。

使用Selenium代码---

HTML网页来源

`<div class="col-sm-6">
<input id="LastName" class="form-control ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required" type="text" required="" ng-model="UserProfiles.LastName" name="LastName" placeholder="Please Enter Last Name"/>
</div>`

Selenium Java代码

WebElement cityField = driver.findElement(By.cssSelector("input[ng-model='UserProfiles.FirstName']"));

cityField.clear();
cityField.sendKeys("Chicago");
System.out.println("Print- "+ cityField.getAttribute("input[ng-model='UserProfiles.FirstName"));

cityField = driver.findElement(By.cssSelector("input[ng-model='UserProfiles.LastName']"));
System.out.println("+++-- "+cityField.getText());`

2 个答案:

答案 0 :(得分:4)

您的代码正在尝试将文本放入&#34;输入&#34;元素,什么都不会返回。请尝试

cityField.getAttribute("value")

答案 1 :(得分:0)

您可以使用常用功能:

public String getAttributeValue(WebDriver driver, String locator, String attribute) {
    WebElement element = driver.findElement(By.xpath(locator));
    return element.getAttribute(attribute);
}

在测试脚本中:

String idValue = getAttributeValue(driver, "//input[@id='LastName']", "id");
String modelValue = getAttributeValue(driver, "//input[@id='LastName']", "ng-model");
String nameValue = getAttributeValue(driver, "//input[@id='LastName']", "name");

元素的getText的方式相同。