Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇硒;Angular 2 | Webdriver可直观地清除文本字段,但不会从DOM中清除_Java_Angular_Dom_Selenium Webdriver - Fatal编程技术网

Java 爪哇硒;Angular 2 | Webdriver可直观地清除文本字段,但不会从DOM中清除

Java 爪哇硒;Angular 2 | Webdriver可直观地清除文本字段,但不会从DOM中清除,java,angular,dom,selenium-webdriver,Java,Angular,Dom,Selenium Webdriver,我有一个用Java编写的测试,它使用SeleniumWebDriver从视觉上清除用Angular2编写的文本字段,但Selenium实际上并没有清除DOM中的字段 我需要从文本字段中获取一个警报,该警报表示无法创建空标题,并且该警报不会出现,因为DOM仍然表示存在标题,即使Selenium假定已清除该字段: ng-reflect-length="10" ng-reflect-model="New Survey" 如果确实清除了,DOM不应该包含上面的代码 我最初尝试使用正确的Java Se

我有一个用Java编写的测试,它使用SeleniumWebDriver从视觉上清除用Angular2编写的文本字段,但Selenium实际上并没有清除DOM中的字段

我需要从文本字段中获取一个警报,该警报表示无法创建空标题,并且该警报不会出现,因为DOM仍然表示存在标题,即使Selenium假定已清除该字段:

ng-reflect-length="10"
ng-reflect-model="New Survey"
如果确实清除了,DOM不应该包含上面的代码


我最初尝试使用正确的Java Selenium格式来清除:

public void clearTextField(){
 webElement.clear();
}
这将在视觉上清除文本字段,但是那些角度2属性和值不会在DOM中消失。这会导致文本字段中的字符计数器保持在90个字符,而不是100个字符。如果它是100个字符,我会得到我的警报


如果我:

public void sendKeysToTextField(String inputText){        
 webElement.sendKeys(inputText);
} 
但是,当清除文本字段时,DOM不会更新


我有一个黑客的解决办法,它迫使机器人实用程序退格,它需要坐标来定位页面。但这只在本地有效


请帮忙!谢谢。

您是否尝试过发送一个控件-a来选择字段中的所有内容,然后发送一个退格来清除字段


sendkeys(“^a{BACKSPACE}”)

这里提供的一些信息与
clear
方法有关,您好@Naveen,谢谢您的评论。但这个问题似乎与Selenium在DOM中如何处理Angular 2有关。clear()适用于其他语言。您好,谢谢。我已经试过了,还有一个类似的机器人实用程序。基本上是string.length、循环和“types”字符,用于您想要的任何键码。它需要一个单独的Java线程来运行,这将启动Selenium浏览器,因此我必须强制它重新单击特定坐标(因此只在本地运行)。必须首先键入字符,字段才能识别退格。方法:
RobotUtilities.type(“char”);对象。sendKeys(“”);对象。单击();移动鼠标(x,y);moveLeftClick();类型(“字符”);机器人(环退格)