我在提取完整样式属性时遇到问题,因为它的一部分仍然没有到达 DOM - 它的图像有时需要 1-2 秒才能加载到屏幕上,所以会发生什么是有一个字符串属性,但是当图像从服务器到达时它会改变。我正在做一个 WebDriverWait 以使元素在 DOM 中可见,但是当我尝试采用它的“样式”属性时(具有“...;(url:”http://....“) ",它有时不存在,然后我的 substring() 失败。
这是代码:
@Step("Print Image src url")
public String printImage(Integer imgNo){
WebElement imgStyle = (new WebDriverWait(driver, 15)).until(ExpectedConditions.visibilityOfElementLocated(By.xpath(Consts.ACTIVE_IMG_XPATH_1000 + "/div[" + (currentImg + 1) +"]/div[1]")));
String styleString = imgStyle.getAttribute("style");
Integer idxUrl = styleString.indexOf("url");
Integer idxJpg = styleString.indexOf("jpg");
String urlImage = styleString.substring(idxUrl+5,idxJpg+3); //styleString.indexOf("http"),20
Log.info("V - Image " + imgNo + " src is: " + urlImage);
return urlImage;
}
我可以简单地添加 System.wait(3000),但我不想使用它。任何想法如何更好地解决它?我可以等待字符串的可见性吗?
谢谢你的时间。