我正在尝试访问容器background-image:url('.....')
的{{1}}属性并获取图片网址。
问题是容器div最初是隐藏的,并且动态添加了图像URL,并使容器可见。
当我尝试使用div
访问该元素时,它会返回photoContainer.getCssValue("background-image");
。
html代码是:
none
这个div的CSS是:
<div id="photo_container" style="background-image: url("res/images/840x460/287/28702560.jpg");"></div>
但是使用下面的代码我可以获取url字符串:
background-image: url("res/images/840x460/287/28702560.jpg");
display: none;
使用一些时间间隔以幻灯片形式加载图像,我的目的是获取动态加载的图像网址
编辑:
下面的代码用于从幻灯片中获取图片网址:
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();
图像容器&#34; photo_holding&#34;使用以下代码动态添加
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);
}
答案 0 :(得分:2)
尝试等待直到div
可见
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("photo_container")));
// Now div is visible so get the attribute
WebElement photoContainer = driver.findElement(By.id("photo_container"));
String imgUrl = photoContainer.getCssValue("background-image");
答案 1 :(得分:0)
ImageURL存储在slideshow_photos[]
中,对吗?然后,如果我们阅读它,那么我们可以得到我们需要的东西。
根据Reading JavaScript variables using Selenium WebDriver第3个答案,如果无论如何要知道幻灯片的数量,那么我们就可以让它们循环播放String result = (String)js.executeScript("return slideshow_photos["+i+"]");
希望这可以帮助你。