当前位置: 首页 > 知识库问答 >
问题:

PageObjects+无角页面-如何加入它们?

羊舌承颜
2023-03-14
    null
'use strict';

var DamagePage = require('../../pages/case/CaseDamagePage.po.js');

describe('Damage selection - ', function() {

  var damagePage = new DamagePage();

  it('Switch to iFrame',function(){
      browser.driver.switchTo().frame('padIframe');
  });

  it('Open a zone', function() {
      browser.driver.findElement(by.id('30_0_79')).click();
      browser.sleep(2000);
  });

  it('Select a part', function () {
      browser.driver.findElement(by.id('32_0_201')).click();
      browser.sleep(3000);
  });

  it('Put I on it with 5 WU', function() {
      // Click I
      damagePage.leftMenuButtons.I.button.click();
  });
'use strict';

var CaseInterface = require('./CaseInterface.js');

var DamagePage = function() {

  // LEFT-SITE MENU BUTTONS
  this.leftMenuButtons = {
      I: {
          button: browser.driver.findElement(by.id('operation-button-I'))
      },
      E: {
          button: element(by.id('operation-button-E')),
          mutation: element(by.id('operation-button-mutation-E'))
      }
  };
};

module.exports = DamagePage;

在规范中,所有的工作都很好,直到它来到‘把我放在它与5吴’步骤。在此配置中,量角器启动后立即出现错误:

C:\users\xxx\appdata\roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\atoms\Error.js:108 var template=新错误(this.message);^noSuchelementError:没有这样的元素:找不到元素:{“method”:“id”,“selector”:“operation-button-i”}(会话信息:Chrome=47.0.2526.106)(驱动程序信息:ChromeDriver=2.19.346078(6F1F0CDE889532D48CE8242342D0B84F94B114A1),平台=Windows NT 6.1 SP1 x86_64)(警告:服务器未提供任何stacktrace信息)命令持续时间或超时:22毫秒有关此错误的文档,请访问:http://seleniumhq.org/exceptions/no_such_element.html

这要感谢Page对象中的“Browser.driver.findElement”语法。当我把它改成“元素”时,量角器正确地启动,运行到‘用5吴把我放在上面’步。在这里它抛出:

失败:等待量角器与页面同步时出错:“在窗口上找不到Angular”

共有1个答案

谭炎彬
2023-03-14

量角器一启动我就出错了

这是因为您初始化Page对象的位置-量角器在收集规范时很早就初始化了Page对象。您需要在beforeach()中初始化page对象:

describe('Damage selection - ', function() {
    var damagePage;

    beforeEach(function () {
       damagePage = new DamagePage();
    });

    // ...
});

或者,直接在it():

it('Put I on it with 5 WU', function() {
    var damagePage = new DamagePage();

    // Click I
    damagePage.leftMenuButtons.I.button.click();
});
 类似资料:
  • 我在20分钟前问过这个问题,但当我插入代码时,站点需要很长时间才能加载。10分钟后,我收到以下错误消息: 使用以下代码:

  • 到底应该怎么做才能重定向回一个有角度的页面?这是我的输入&来自html的按钮(无角页面) 位于todo-speck.js中,如下所示; 使用在上一个角度页上最后调用以关闭同步。请记住,这个小页面在将用户重定向到即将到来的有角度的页面之前与支付网关服务进行通信。我试图关闭同步,但没有缓解。 另外要注意的是:当我一分钟又一分钟地运行相同的脚本时,我似乎会得到两个不同的错误。我猜是和超时有关。一个是;

  • 问题内容: 我已经通过Ajax调用通过隐藏的iframe读取了Facebook加载页面的地方…这是真的吗? 问题答案: Facebook使用他们称为BigPipe的东西,它将页面分成一堆小小的“小页面”,这些小页面分别通过AJAX加载。 在下图中,浅蓝色突出显示的区域是单个的小页面。

  • 我正在使用python api将一些Selenium RC测试转换为Selenium WebDriver。在Selenium WebDriver中,我注意到似乎要等待整个页面加载才能继续。有没有办法不等待页面加载?我请求的一些页面有很多外部资源,可能需要很长时间才能加载。我宁愿等待DOM上的元素出现,也不愿等待所有内容加载。因此,我的一些测试在WebDriver中花费的时间似乎是原来的两倍。

  • 我需要在IBM Maximo项目上进行测试自动化。 我在网上找到了它:https://www.ibm.com/developerworks/community/forums/html/topic?id=4d90a532-31a3-41bd-a128-2186fdae50b8,我尝试使用它。 该程序启动了google chrome,但在关闭后几分钟就停止了。 这是日志,我不知道该怎么办: 感谢每一个

  • 我有以下代码 如果在第三行我只画了一些东西,那么一切都很好。然而,如果我画了很多东西,那么我会得到: 以上代码在95%的情况下都能正常工作,只有当页面真正满了时才会出现问题。 如果在第2行。 那么它工作得很好。但目标是使用pdf模板。