我需要使用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());`
答案 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的方式相同。