求助,如何解决自动化脚本的稳定性问题?
我用的是selenium+java搭的框架,在脚本运行时总会时不时出错,主要是找不到元素、元素不可点击和执行错误的请求,研究了一下一般是由于网络原因或者是服务器响应慢导致的,具体表现为一步操作执行完之后,在页面还没有完全加载好时脚本就开始执行下一步 的操作了。在定位元素时我已经加了两种等待了,还是会经常出这种问题,希望大神给点意见,我的定位元素的封装代码如下(定位方式与定位路径已经用键值方式封装起来了):public WebElement Find_Element(final String key){
final String type=yamlUtils.getKeyMap().get(key).get("type");
final String value=yamlUtils.getKeyMap().get(key).get("value");
try {
WebElement element=(new WebDriverWait(dr,15)).until(
new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver d){
return dr.findElement(yamlUtils.GetBy(type,value));
}
}
);
WebDriverWait wait =new WebDriverWait(dr,10);
wait.until(ExpectedConditions.elementToBeClickable(dr.findElement(yamlUtils.GetBy(type,value))));
report.log("通过定位方式By."+type+"定位到元素"+value);
return element;
}
catch (Exception e){
e.printStackTrace();
report.error("无法通过定位方式By."+type+"定位到元素"+value);
ScreenPhotoShot();
return null;
}
}
一般是等待页面元素加载后在执行脚本吧,看大家的经验是对页面是否加载完全做校验之后再执行后面的脚本 我封装完之后的效果就是每次定位元素前都会进行等待,要实现你那种说法的话,页面加载的校验要放在哪里?具体的代码是什么可以麻烦告诉我一下么? jingzizx 发表于 2017-4-25 16:01
一般是等待页面元素加载后在执行脚本吧,看大家的经验是对页面是否加载完全做校验之后再执行后面的脚本
我封装完之后的效果就是每次定位元素前都会进行等待,要实现你那种说法的话,页面加载的校验要放在哪里?具体的代码是什么可以麻烦告诉我一下么? 默认时间太短了吧 Q661823 发表于 2017-5-3 10:54
默认时间太短了吧
15秒还短么:L
页:
[1]