【发布时间】:2018-11-01 17:40:47
【问题描述】:
我在函数中执行了一些量角器脚本,并且该函数在 for 循环中调用。因此,如果发生任何错误,例如找不到元素,元素不可处理,WebDriverError:发生未知错误:元素不可点击,那么我需要跳过该循环计数并需要执行下一个循环计数。我尝试使用 isPresent(),isDisplayed() 来捕获错误,但它不起作用,然后我尝试了下面的代码。
for(i=0; i<count; i++){
post(post_details[i].MediaUrl,post_details[i].CallToActionType,post_details[i].LPAID,post_details[i].CallToActionUrl);
}
post((MediaUrl,CallToActionType,LPAID,CallToActionUrl){
element(by.css(locators.locator_post_description)).sendKeys(Summary).then (function(){
if(MediaUrl!=null){
var path = require('path');
var type=MediaUrl.split("/");
var fileToUpload = '../files/' + (type[type.length-1]) ;
var absolutePath = path.resolve(__dirname, fileToUpload);
browser.sleep(3000);
element(by.css(locators.locator_post_img)).sendKeys(absolutePath);
browser.sleep(6000);
}
if(CallToActionType!=null){
browser.sleep(1000);
element(by.css(locators.locator_post_eventPostButton)).click();
browser.sleep(2000);
element(by.cssContainingText(locators.locator_post_buttonType,CallToActionType)).click();
browser.sleep(1000);
element(by.css(locators.locator_post_eventPostButtonLInk)).sendKeys(CallToActionUrl);
}
element(by.xpath(locators.locator_post_publishBtn)).click().then (function(){
browser.sleep(3000);
updatedb(LPAID);
});
},function(err) {
console.log("no summary...."+err);
return true;
});
}
在这里,我从 DB 中获取值(MediaUrl,CallToActionType,LPAID)并且我正在检查它的值是否为空。通过使用上面的代码,我能够捕获与描述元素相关的错误,然后退出该循环计数并执行下一个循环计数。但是我无法对图像元素、按钮类型元素、按钮链接元素使用此错误捕获方法。那么我如何捕获与每个定位器元素相关联的错误(如果有)以及是否有错误发生,然后跳过该循环计数。提前致谢。
【问题讨论】:
标签: protractor cucumberjs