Я не могу использовать синхронные функции и асинхронные функции JavaScript в среде транспортира-огурца - PullRequest
0 голосов
/ 19 ноября 2018

Я использую JavaScript для моей структуры транспортира огурца. Сначала выполняется синхронный код, а асинхронный код работает в фоновом режиме.
проблеск моего кода:

When(/^I select the required "(.*?)" collection "(.*?)" from Select Collection Modal Window "(.*?)","(.*?)","(.*?)","(.*?)","(.*?)","(.*?)"$/,(collection_type,collection_name,level,tag,level1,tag1,level2,tag2)=>{
  bid_config.click_Tag_Assignment();

  bid_config.click_Select_Collections();
  expect(bid_config.select_Collection_modal_window.isDisplayed()).to.be.eventually.true;
    bid_config.Select_Collection(collection_type,collection_name);
    //bid_config.Select_Bid_Collection(collection_name);
   bid_config.get_Entity_type_Drop_down_Text('H9 - Commodity/Entity');
   bid_config.AssignTags_to_WBS_Levels(level,tag,level1,tag1,level2,tag2);    


})

Моя проблема - get_Entity_type_Drop_Down_text ()сначала выполняется, а функция select_Collections () обрабатывает в фоновом режиме код обеих функций:

Select_Collection(collection_type,name){

var Collection_names = [];
var Collection_type_names = [];



(async()=>{

    var get_collections_count = await this.get_collections_count();
for(var i=0;i<get_collections_count;i++){

    Collection_names[i] = await this.Get_Collection_name(i); 
console.log("the collection name is   "+Collection_names[i]);
Collection_type_names[i] = await this.get_Collections_type(i);
console.log("the collection type is  "+ Collection_type_names[i]);

if((collection_type === Collection_type_names[i]) && (Collection_names[i] === name)){

var click_Checkbox = element.all(by.xpath("//*[@class='ReactVirtualized__Table__rowColumn list-body-cell '][1]//*[@class='csc-checkbox-element']")).get(i);
click_Checkbox.click();
var click_add_collection_arrow = element.all(by.xpath("//*[@class='separator transfer-block']//button[@class='btn btn-success btn-sm']")).get(0);
//helper.waitForbuttonElement(click_add_collection_arrow);
browser.actions().click(click_add_collection_arrow).perform();
//click_add_collection_arrow.click();
var OK = element(by.xpath("//button[@class='btn btn-success' and @type = 'button']"));
  browser.actions().click(OK).perform();
  return browser.sleep(1000);

//return OK.click();
}

}

})();

}



  get_Entity_type_Drop_down_Text(req_level){

     element(by.xpath("//button[@class='btn btn-link dropdown-toggle']")).getText().then((text)=>{
     console.log(text);

     if(text === 'Commodities'){

        let clickexpandDetails = element(by.xpath("//*[text()='Expand Details']"));
        //helper.waitForbuttonElement(clickexpandDetails);
        clickexpandDetails.click();
        //H9 - Commodity/Entity']
        let xpath_level = "//*[@class='dropdown-menu']//li[text()='"+req_level+"']";
        let select_level = element(by.xpath(xpath_level));
        //helper.waitForbuttonElement(select_level);
       return browser.actions().click(select_level).perform();

     }
    })
    }

. Пожалуйста, дайте мне несколько советов, чтобы дождаться синхронного кода перед выполнением асинхронного кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...