我一次又一次地搜索论坛-试图弄清人们所说的内容,但是解决方案似乎永远都不适合我的情况。
我的问题涉及从网站的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
答案 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();
});
}
};
希望以上功能对您有帮助!