- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Angular 网站上使用 Jasmine/Protractor,在尝试验证我刚刚在下拉列表中所做的选择时遇到了一个有趣的问题。这两个下拉菜单实际上是相同的,其页面来源如下:
GroupAssocDrpDwn 页面来源:
<select class="pure-input-1 ng-pristine ng-untouched ng-valid length" id="groupAssociation" name="groupAssociation" ng-init="company.group.id = null" ng-model="company.group" ng-options="group as group.name for group in groups | orderBy : 'name'" ng-change="setStates(company.group)" has-value=""><option value="?" selected="selected"></option><option value="object:312" label="--No Group Association--">--No Group Association--</option><option value="object:313" label="Amicus Solar">Amicus Solar</option><option value="object:314" label="BakeryDirect">BakeryDirect</option><option value="object:315" label="Bicycle/Rumbleship">Bicycle/Rumbleship</option><option value="object:316" label="Brixy">Brixy</option><option value="object:317" label="NuORDER">NuORDER</option><option value="object:318" label="ProTradeNet">ProTradeNet</option><option value="object:319" label="Receivables">Receivables</option></select>
等等...
<option value="object:313" label="Amicus Solar">Amicus Solar</option>
StateDropdown 页面来源:
<select name="state" ng-model="company.addresses[0].state" class="pure-input-1 ng-pristine ng-invalid ng-invalid-required ng-touched" ng-options="state.abbr as state.name for state in states" ng-init="setStates()" has-value="" required="" style=""><option value="?" selected="selected"></option><option value="string:AL" label="Alabama">Alabama</option><option value="string:AK" label="Alaska">Alaska</option><option value="string:AS" label="American Samoa">American Samoa</option><option value="string:AZ" label="Arizona">Arizona</option><option value="string:AR" label="Arkansas">Arkansas</option><option value="string:CA" label="California">California</option><option value="string:CO" label="Colorado">Colorado</option><option value="string:CT" label="Connecticut">Connecticut</option><option value="string:DE" label="Delaware">Delaware</option><option value="string:DC" label="District Of Columbia">District Of Columbia</option><option value="string:FM" label="Federated States Of Micronesia">Federated States Of Micronesia</option>
等等...
<option value="string:FL" label="Florida">Florida</option>
在一个单独的类中,我定义了两个下拉对象,调用我想要从下拉列表中选择的数据:
this.objAdminCompaniesGroupAssocDrpDwn = element(by.model('company.group'))
this.objAdminCompaniesStateDrpDwn = element(by.model("company.addresses[0].state"))
this.selectGrpAssocDropdown = function(value){
return this.objAdminCompaniesGroupAssocDrpDwn.sendKeys(commonData.drpCmpnyGrpAssociation);
}
this.selectCompanyUSCAStateDropdown = function(value){
return this.objAdminCompaniesStateDrpDwn.sendKeys(commonData.txtCmpnyState);
}
在测试 _spec.js 文件中,这些是对函数的调用(它们用Describe/It 包装,未显示...)。
adminAddCompany.selectGrpAssocDropdown();
expect((adminAddCompany.objAdminCompaniesGroupAssocDrpDwn).$('option:checked').getText()).toEqual(commonData.drpCmpnyGrpAssociation);
adminAddCompany.selectCompanyUSCAStateDropdown();
expect((adminAddCompany.selectCompanyUSCAStateDropdown).$('option:checked').getText()).toEqual(commonData.txtCmpnyState);
第一个 (GroupAssocDrpDwn) 上的 EXPECT() 运行良好。第二个上的 EXPECT() 则没有;它失败并显示错误“失败:adminAddCompany.selectCompanyUSCAStateDropdown.$不是函数”。但是,如果我将 () 放在第二次调用的末尾,如下所示:
expect((adminAddCompany.objAdminCompaniesGroupAssocDrpDwn()).$('option:checked').getText()).toEqual(commonData.drpCmpnyGrpAssociation);
。 。 。现在已经过去了!
我不清楚为什么不需要函数括号,而一个会......? (请注意,第一个失败带有括号,也......)
对于一个非常好奇的人来说,谁能概述一下这两个 Expect() 调用之间的区别是什么?
谢谢!
最佳答案
objAdminCompaniesGroupAssocDrpDwn
和 objAdminCompaniesStateDrpDwn
为 ElementFinder原型(prototype)包含 $ 的 s功能。因此 objAdminCompaniesGroupAssocDrpDwn.$() 是合法的。
selectCompanyUSCAStateDropdown
和 selectGrpAssocDropdown
只是返回 Promise 的函数。 $
不是基本 Function 原型(prototype)上的属性。因此,您需要使用 ()
执行该函数才能获得底层的 Promise。
这里没有意义的是对生成的 Promise 调用 $
。您确定正确复制了错误和修改后的代码吗?
关于javascript - 期望语句的差异没有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638634/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!