首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Angular.js应用程序使用PhantomJS填充表单

使用Angular.js应用程序使用PhantomJS填充表单
EN

Stack Overflow用户
提问于 2014-05-16 14:19:56
回答 1查看 6.2K关注 0票数 3

我想使用AngularJS测试PhantomJS应用程序。第一步是使用username字段填充登录表单(假设没有其他字段)。

通常(在实际浏览器中)该字段由角(它有ng-model属性)控制,整个表单具有ng-submit属性。

所以在PhantomJS脚本中

  1. 输入用户名 Page.evaluate(函数() { document.getElementsByName('username').value = 'tester';});
  2. 拿出屏幕截图,看看输入中是否存在“测试人员” page.render('myfile.jpg');
  3. 点击提交按钮: Page.evaluate(函数() { document.getElementById('go').click();});
  4. 再拍一张截图。

我看到的是这个按钮被点击了,但是显示的消息表明username的值是空的。所以我想模型没有经过适当的更新。

我还尝试使用jQuery -相同的结果来设置这些值。

如何将值正确地输入到由角度控制的字段中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-17 09:52:41

PhantomJS提供了可用于实现基本sendKeyssendEvent函数,但您需要首先关注元素:

代码语言:javascript
运行
复制
function sendKeys(page, selector, keys){
    page.evaluate(function(selector){
        // focus on the text element before typing
        var element = document.querySelector(selector);
        element.click();
        element.focus();
    }, selector);
    page.sendEvent("keypress", keys);
}
sendKeys(page, "*[name=username]", "tester");

您可能想检查一下量角器,它似乎是为Angular.js测试量身定做的,或者是CasperJS,它构建在PhantomJS的基础上,有一个更好的API。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23697644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档