如何访问;“隐藏的”;使用javascript和量角器设置attrabute的样式

如何访问;“隐藏的”;使用javascript和量角器设置attrabute的样式,javascript,html,css,automation,protractor,Javascript,Html,Css,Automation,Protractor,我有一个搜索网页。如果使用特殊字符等数据搜索无效,则会显示警告消息 当页面加载时,CSS加载如下: 当您输入无效文本并按search时,上述更改将显示为 显示:块;不透明度: 这也会出现一个带有错误消息的 我尝试了以下var styleValue=element(by.id('ideliveryareaerror')).getCssValue('style')

我有一个搜索网页。如果使用特殊字符等数据搜索无效,则会显示警告消息

当页面加载时,CSS加载如下:

当您输入无效文本并按search时,上述更改将显示为
显示:块;不透明度:
这也会出现一个带有错误消息的

我尝试了以下
var styleValue=element(by.id('ideliveryareaerror')).getCssValue('style')
我的代码示例:

        var styleValue = element(by.id('isearchError')).getCssValue('style');
        browser.actions().sendKeys(protractor.Key.ENTER).perform();
        browser.sleep(1000);
        console.log(styleValue);
        browser.sleep(1000);
我想做的是:

  • 获取样式属性值(应为无)
  • 按enter键输入无效数据
  • 获取样式属性值(应为块)
  • 获取错误消息文本
我的代码的图像:

您使用的是
getCssValue('style')
,但您需要
getCssValue('display')
。获取CSS值,而不是HTML属性。(我不使用量角器,但方法名称和您要求的内容突然出现在我眼前。:-)

比如:

var searchError = element(by.id('isearchError'));
expect(searchError.getCssValue('display')).toBe('none');
browser.actions().sendKeys(protractor.Key.ENTER).perform();
browser.sleep(1000);
expect(searchError.getCssValue('display')).toBe(''); // Or possibly 'block' or one of the others
console.log(styleValue);
browser.sleep(1000);

您是否尝试过量角器提供的
isDisplayed
方法?
如果您希望显示/不显示元素,可以如下所示:

expect(element(by.id('ideliveryareaerror')).isDisplayed()).toBe(true);  // (or false)  
var styleValue = element(by.id('isearchError')).getCssValue('style')
    .then( function(style) {
        console.log(style);
    });
此外,您将获得元素的树结构,因为
getCssValue
是一个需要解决的承诺,这就是为什么它可能无法与普通
console.log一起工作的原因
在这种情况下,您需要这样做:

expect(element(by.id('ideliveryareaerror')).isDisplayed()).toBe(true);  // (or false)  
var styleValue = element(by.id('isearchError')).getCssValue('style')
    .then( function(style) {
        console.log(style);
    });