我尝试使用selenium发送密钥,并且它不想在第一次尝试时发送它们。基本上我们的应用程序建立在HTML5,Javascript,Angularjs上。我们在第一页上有视频播放器(来自AngularJS的Videogular)。我可以通过发送键暂停/播放视频:
Actions action = new Actions(driver);
action.sendKeys(String.valueOf("p")).perform();
OR
Actions action = new Actions(driver);
action.sendKeys(String.valueOf("f")).perform();
但是当我试图转发时,通过以相同方式发送密钥来回放(f / r)
driver.findElement(By.xpath("//body")).sendKeys("f");
玩家根本没有反应,有时我会放入5或10的循环来查看结果 但是,如果我使用真正的键盘,它首先尝试没有问题。 我甚至这样做了:
{{1}}
我在发送密钥之前甚至在视频播放器上点击(用户故事中不需要),仍然没有运气
花一整天时间搞清楚,仍然没有运气。可能是任何一个有类似问题的人都知道如何解决它?
任何帮助表示赞赏
答案 0 :(得分:0)
Actions API中还有另一个sendKeys方法,该方法采用目标 WebElement 。
sendKeys(WebElement element, CharSequence... keysToSend)
我试一试。
Actions actions = new Actions(driver);
//FIXME: Get correct lookup for the VideoPlayer element.
WebElement videoPlayer = driver.findElement(By.xpath(""));
String play = "p";
//Send "p" to the videoPlayer webElement
actions.sendKeys(videoPlayer, play).perform();
您正在使用的方法
sendKeys(CharSequence... keysToSend)
将命令发送到活动元素,该活动元素可能不是您想要接收密钥的VideoPlayer。
答案 1 :(得分:0)
不要将密钥发送到页面正文,而是尝试将密钥按键添加到容器中,将它们发送到容器中:
driver.findElement(RfBy.cssSelector(".video-container"))
.sendKeys("f");