【发布时间】:2019-04-25 23:14:28
【问题描述】:
在我的项目中,我有一个下拉列表,我从中选择基于文本的选项。我的目标是在选择选项后进行测试,在 Dropbox 中显示的文本(如下图所示)是否与我的输入值匹配。
我的代码如下:
this.selectDropdownByText = async function(container, inputText){
await helpers.clickWhenClickable(element(by.cssContainingText('option',inputText)), 5000, "the selected option is not clickable");
await helpers.clickWhenClickable(CL.Save_Button_BottomPanel,10000);
await sync.waitUntilElementVisible(await CL.Save_success_Massage, 10000);
await sync.waitUntilElementInVisible(await CL.Save_success_Massage, 10000);
await helpers.waitForElementVisibility(container);
return await container.getSelection().getText();
在我们到达 return 语句之前,代码中没有问题。但是,当我尝试container.getSelection().getText() 时,return 语句会返回错误。错误是TypeError: container.getSelection is not a function 另一方面,如果我尝试container.getText(),它会返回下拉列表的所有选项。
有没有办法做到这一点?
html代码是:
<select _ngcontent-c11="" class="form-control ng-touched ng-dirty ng-valid" formcontrolname="dcbsId"
id="directClassBased">
<!---->
<!---->
<option _ngcontent-c11="" value="1: 54756697-0CC6-45A2-B857-E96E132D46B0" class="ng-star-inserted">HS Com A</option>
<option _ngcontent-c11="" value="2: FA377EE4-66C4-46ED-992D-8D17A6756586" class="ng-star-inserted">HS Com B</option>
<option _ngcontent-c11="" value="3: 7BA46C9C-6150-4E5D-8FD0-270D6387D772" class="ng-star-inserted">HS Com C</option>
.....
.....
<option _ngcontent-c11="" value="12: 08FD1A93-6507-4ABB-9420-DD2E62F9562C" class="ng-star-inserted">CL TRC</option>
【问题讨论】:
-
对不起一个菜鸟问题。
container是什么?helpers是什么?sync是什么?除了jasmine/protractor,您还在使用其他框架或库吗? -
Container 只是我们用于此功能的一个参数。同步是我们脚本中一些可重用函数的集合。助手是一个 Jasmine 模块,您可以在 npmjs.com/package/protractor-helper 找到
标签: jasmine protractor