0

我在菜单栏中有下拉菜单。当我测试下拉列表时,它工作正常。但是,当我单击下拉列表中的某个项目时,它不会显示与该项目相关的任何数据。

测试 :

it('Add Patient', function(){
          ptor = protractor.getInstance();
    var dropdown = element.all(by.css('.dropdown')).get(3);
    var toggle = dropdown.element(by.css('.dropdown-toggle'));
    toggle.click();
    toggle.click();
    ptor.sleep(2000);     
    var list = dropdown.all(by.css('.dropdown-menu li'));
    expect(list.get(1).getText()).toEqual('Patients');
    var test = list.get(1);
    test.click(); 
        });

日志是这样打印的。

Dropdown Log***** { parentElementArrayFinder: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  elementArrayFinder_: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  click: [Function],
  sendKeys: [Function],
  getTagName: [Function],
  getCssValue: [Function],
  getAttribute: [Function],
  getText: [Function],
  getSize: [Function],
  getLocation: [Function],
  isEnabled: [Function],
  isSelected: [Function],
  submit: [Function],
  clear: [Function],
  isDisplayed: [Function],
  getOuterHtml: [Function],
  getInnerHtml: [Function],
  getId: [Function] }
Toggle Log******** { parentElementArrayFinder: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown-toggle' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  elementArrayFinder_: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown-toggle' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  click: [Function],
  sendKeys: [Function],
  getTagName: [Function],
  getCssValue: [Function],
  getAttribute: [Function],
  getText: [Function],
  getSize: [Function],
  getLocation: [Function],
  isEnabled: [Function],
  isSelected: [Function],
  submit: [Function],
  clear: [Function],
  isDisplayed: [Function],
  getOuterHtml: [Function],
  getInnerHtml: [Function],
  getId: [Function] }
List log***** { getWebElements: [Function],
  actionResults_: undefined,
  locator_: { using: 'css selector', value: '.dropdown-menu li' },
  click: [Function],
  sendKeys: [Function],
  getTagName: [Function],
  getCssValue: [Function],
  getAttribute: [Function],
  getText: [Function],
  getSize: [Function],
  getLocation: [Function],
  isEnabled: [Function],
  isSelected: [Function],
  submit: [Function],
  clear: [Function],
  isDisplayed: [Function],
  getOuterHtml: [Function],
  getInnerHtml: [Function],
  getId: [Function] }
Test log***** { parentElementArrayFinder: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown-menu li' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  elementArrayFinder_: 
   { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.dropdown-menu li' },
     click: [Function],
     sendKeys: [Function],
     getTagName: [Function],
     getCssValue: [Function],
     getAttribute: [Function],
     getText: [Function],
     getSize: [Function],
     getLocation: [Function],
     isEnabled: [Function],
     isSelected: [Function],
     submit: [Function],
     clear: [Function],
     isDisplayed: [Function],
     getOuterHtml: [Function],
     getInnerHtml: [Function],
     getId: [Function] },
  click: [Function],
  sendKeys: [Function],
  getTagName: [Function],
  getCssValue: [Function],
  getAttribute: [Function],
  getText: [Function],
  getSize: [Function],
  getLocation: [Function],
  isEnabled: [Function],
  isSelected: [Function],
  submit: [Function],
  clear: [Function],
  isDisplayed: [Function],
  getOuterHtml: [Function],
  getInnerHtml: [Function],
  getId: [Function] }
4

2 回答 2

0

测试 Angular 很困难。不要对自己失望。:)

试试这两件事:

  1. 更具体地使用您的CSS 选择器。添加一个#idTag以确保您单击的是所需的确切元素: element(by.id('idTag')).click();

  2. 写一个断言。你的测试没有测试任何东西。它只是单击一个菜单项。点击时应该发生什么?例如,是否应该在屏幕上弹出一个新元素? expect(element(by.id('newPatient')).isPresent()).toBe(true);

于 2014-12-16T05:41:41.970 回答
0

要在控制台上打印值,您需要执行以下操作:

var dropdown = element.all(by.css('.dropdown')).get(3).getText();
dropdown.then(function(value)
{
  console.log("Dropdown Log*****", value);
});

原因:
var 下拉列表包含一个Promise。要打印该值,您需要使用.then提取其值 另一种处理Promises的方法是使用expect语句

请让我知道这可不可以帮你!

于 2014-12-23T10:46:35.973 回答