过滤特定元素,然后单击相应的按钮

时间:2018-06-23 06:40:36

标签: javascript protractor

目前,我有一个HTML页面,其中包含项目列表,并且每个项目都有一个按钮。

在此处查看我的HTML(项目示例,后跟按钮):https://pastebin.com/Ne4yrC7D

我正在使用以下功能:

basePage.js

this.listAndClick = function(optionList, foundText) {
    optionList.filter(function(elm, index) {
        return elm.getText().then(function(text) {
            console.log(text);
            return text === foundText;
        });
    }).first().element(by.css('.ui-button')).click();
};

this.clientsList = element.all(by.css('.ui-cell-data'));

mySpec.js

basePage.listAndClick(basePage.clientsList, 'client zero');

到目前为止,我的功能是过滤页面上的所有项目,但问题是单击与文本对应的按钮不起作用。

任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

请尝试以下逻辑。

根据您共享的html,所有元素都与CSS为span.ui-cell-data的类一起使用,CSS是下面使用的“ ArrayElement”。

selectElement(text: String) : any {
for(int i=o;i< ArrayElement.length();i++)
{
if(ArrayElement.get(i).toEqual(text)){
ArrayElement.get(i).click()
}}

现在只需从规格文件中传递selectElement('client zero')

注意:在提供的解决方案中使用了打字稿。