小编pet*_*rmk的帖子

从angularjs模态对话框服务返回数据

我对AngularJS很新,并且在从模态对话服务返回数据时遇到问题.基本上,我复制了Dan Wahlin的服务http://weblogs.asp.net/dwahlin/archive/2013/09/18/building-an-angularjs-modal-service.aspx,并从我的控制器调用它.

myApp.controller('MyController', function($scope, ModalService) {
    window.scope = $scope;
    $scope.mydata = {name: ""};

    $scope.showModal = function () {

        var modalOptions    = {
            closeButtonText: 'Cancel',
            actionButtonText: 'Save',
            headerText: 'Save Dialog'
        }

        ModalService.showModal({}, modalOptions).then(function (result) {

        });
    }

});
Run Code Online (Sandbox Code Playgroud)

然后我就像这样:

<div class="modal-header">
    <h3>{{modalOptions.headerText}}</h3>
</div>
<form ng-submit="modalOptions.submit()">
<div class="modal-body">
    <label>Name</label>
    <input type="text" data-ng-model="mydata.name">
</div>
<div class="modal-footer">
    <button type="button" class="btn" data-ng-click="modalOptions.close()">{{modalOptions.closeButtonText}}</button>
    <button type="submit" class="btn btn-primary">{{modalOptions.actionButtonText}}</button>
</div>
Run Code Online (Sandbox Code Playgroud)

这个模态被调用如下:

<button class="btn btn-primary hidden pull-right" id="save" data-ng-click="showModal()">Save</button>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何将名称字段的值返回给控制器?我已经浏览了整个网络,并且所有示例都具有在控制器中打开模态驻留的功能,这使得它更容易,因为控制器中的$ scope也存在于打开模态的函数中.

我尝试将以下代码添加到服务中的"show"函数,但它不起作用.

    tempModalDefaults.resolve = function($scope) {
        mydata …
Run Code Online (Sandbox Code Playgroud)

javascript modal-dialog twitter-bootstrap angularjs angular-ui-bootstrap

17
推荐指数
1
解决办法
5万
查看次数

使用 cypress/puppeteer 登录

我有一个使用 Okta 登录的应用程序。我正在尝试使用 Cypress 和 Puppeteer 设置自动化测试。我遇到的问题是,当我使用 启动 puppeteer 时{headless: true},它没有填写登录表单。{headless: false}在 Cypress 之外打开另一个浏览器窗口并按预期工作。它填写登录表单,正确登录,但我无法在该窗口中运行任何 cypress 测试。

on('task', {
  login({username, password}) {
    return (async () => {
      const browser = await puppeteer.launch({headless: false});
      const page = await browser.newPage();
      await page.goto(config.baseUrl);
      await page.waitForNavigation();
      await page.waitFor('#okta-signin-username');
      await page.type('#okta-signin-username', username, {delay: 100});
      await page.waitFor('#okta-signin-password');
      await page.type('#okta-signin-password', password, {delay: 100});
      await page.click('#okta-signin-submit');
      await page.waitForNavigation();
      return true;
    };
  });
Run Code Online (Sandbox Code Playgroud)

以下是它的使用方式:

it('my test', () => {
  cy.visit('/');
  cy.viewport(1280, 1024);
  cy.login('username', 'password');

  //tests go …
Run Code Online (Sandbox Code Playgroud)

testing automation automated-tests puppeteer cypress

6
推荐指数
0
解决办法
621
查看次数