【发布时间】:2019-08-13 14:47:58
【问题描述】:
我目前正在为将(并且正在)以不同技术(不同的 Web 框架、Java Swing [不是真的,但在技术上应该是可能的] 等)实现的小部件编写黄瓜测试。这些测试旨在通过直接模拟用户的输入来描述被测小部件的功能。例如,测试可以表述为“用户打开网页 X,然后点击那里,然后点击那里,然后点击那里,现在我希望这个文本字段包含值 Y”。
我目前实现测试的技术是网络,使用 Selenium。
现在,假设用户想要在文本字段中输入内容,那么用户实际上会做的是单击文本字段然后开始输入。就其本身而言,在键盘上键入与文本字段没有任何关系 - 只是因为单击将焦点切换到文本字段,文本字段才会接收键盘输入。
现在,Selenium 有一个sendKeys 方法。这个方法具体是做什么的? javadoc 声明“使用此方法模拟输入元素,这可能会设置其值”。
sendKeys 方法是否模拟单击(好像首先调用 .click)然后是键盘输入,就像真实用户那样?还是它设置焦点然后开始打字?还是完全绕过焦点,只是将“键盘输入”发送到输入元素?
由于某些小部件在被点击时可能会表现出特殊行为,因此我需要知道 Selenium 是否在后台执行了点击,或者我是否必须手动调用它才能真实地模拟用户的行为。
注意:我没有按原样将黄瓜添加到标签中,虽然与上下文相关,但与实际问题无关
【问题讨论】:
标签: java selenium selenium-webdriver keyboard focus