我正在尝试访问background-image:url('.....')
容器div
的属性并获取图像 url。
问题是容器 div 最初是隐藏的,并且图像 url 是动态添加的,并且容器是可见的。
当我尝试使用photoContainer.getCssValue("background-image");
它访问元素时,我会返回none
。
html代码是:
<div id="photo_container" style="background-image: url("res/images/840x460/287/28702560.jpg");"></div>
这个 div 的 CSS 是:
background-image: url("res/images/840x460/287/28702560.jpg");
display: none;
但是使用下面的代码可以获取 url 字符串:
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("photo_holding")));
// Now div is visible so get the attribute
WebElement photoContainer = driver.findElement(By.id("photo_holding"));
String imgUrl = photoContainer.getCssValue("background-image");
System.out.println(imgUrl);
driver.quit();
图像使用一些时间间隔作为幻灯片加载,我的目标是获取动态加载的图像 url
编辑 :
下面的代码用于从幻灯片中获取图像 url:
for(int i=0;i<=slideCount;i++){
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("photo_holding")));
// Now div is visible so get the attribute
WebElement photoContainer = driver.findElement(By.id("photo_holding"));
String imgUrl = photoContainer.getCssValue("background-image");
System.out.println(imgUrl);
Thread.sleep(2000);
}
使用以下代码动态添加图像容器“photo_holding”
$('<div id="photo_holding"></div>').insertAfter("#photo_container");$("#photo_holding").css("background-image","url("+slideshow_photos[o]+")");
$("#photo_container").fadeOut(2000,function() {$(this).remove();$("#photo_holding").attr("id","photo_container");