从量角器的AngularJS下拉列表中选择。

时间:2018-06-30 15:20:20

标签: javascript angularjs protractor

我一次又一次地搜索论坛-试图弄清人们所说的内容,但是解决方案似乎永远都不适合我的情况。

我的问题涉及从网站的AngularJS中编码的下拉列表中选择一个项目。我正在使用量角器和Selenium服务器运行自动化测试。现在,我正在运行我在AngularJS中编码的各个网站上编码的不同脚本。看到我编写的代码会自动填写表格真是令人着迷-太酷了!

不幸的是,每当我在测试中遇到问题时,我都会尝试并提出一个解决方案达数小时之久,却从未能够解决。所以我来了!!

这是我正在使用的代码,它实际上是jetblue的注册网站,因此如果您想看看,请访问这里:https://trueblue.jetblue.com/web/trueblue/register/ 麻烦始于下拉菜单的第二页-不知道如何填写单个下拉菜单。

谢谢, FB

    <div class="row has-dropdown form-value error" style="z-index: 108; position: relative;"> <label for="my-info-title"> <span aria-hidden="true">*</span> <span class="visuallyHidden">required</span> Title
<div class="tb-select accountData_title"><span class="tb-select-title error">Select</span><div class="tb-select-dropdown"><ul><li class="selected" title=""><span>Select</span></li><li title="DR"><span> Dr
</span></li><li title="JT"><span> Jetter
</span></li><li title="MISS"><span> Miss
</span></li><li title="MR"><span> Mr
</span></li><li title="MRS"><span> Mrs
</span></li><li title="MS"><span> Ms
</span></li></ul></div><select name="accountData_title" class="my-info-title-select" id="my-info-title" style="display: none;"> <option value="">Select</option> <option value="DR"> Dr
</option>  <option value="MISS"> Miss
</option> <option value="MR"> Mr
</option> <option value="MRS"> Mrs
</option> <option value="MS"> Ms

1 个答案:

答案 0 :(得分:0)

title: ElementFinder = $('select#my-info-title'); list: ArrayElementFinder = $('select#my-info-title > option');

首先执行title.click() [这会单击标题下拉菜单]。然后选择您要选择的标题。

例如:list.get(1).click(),其标题选择为DR

希望这为您的问题提供了答案。

注意:该解决方案由CSS选择器和打字稿提供。

如果上述方法失败,请尝试以下替代功能。

var selectDropdownbyNum = function ( element, optionNum ) {
      if (optionNum){
        var options = element.all(by.tagName('option'))   
          .then(function(options){
            options[optionNum].click();
          });
      }
    };

希望以上功能对您有帮助!

0506