我需要用Java编写自动化代码(硒) 验证方案显示了多少背景图像,并且以什么间隔进行了更改。
URL:-https://www.seniorhousingnet.com/
@然后(“ ^背景图片应显示$”)
=OFFSET($C$5,0,(COLUMN(A8)*n)-1)
要找到背景图片,我编写了一个小型自动化代码,如您在上面看到的,
但是,如果我们观察到背景图像在几秒钟后不断变化。我需要编写代码来显示多少背景图像,以及它以什么间隔不断变化
有人可以帮助我吗?
答案 0 :(得分:0)
每个图像都有自己独特的“标签”,您可以使用它。
WebElement image = driver.findElement(By.id("ImagePlaceHolder"));
String image_name = image.getAttribute("aria-label");
要测量更改时间,可以使用LocalDateTime
和Duration.between(args[])
LocalDateTime timestamp1 = LocalDateTime.now();
Long duration_in_seconds = Duration.between(timestamp1, timestamp2).toMillis() / 1000;
实施的JavaScript每3秒更改一次图片。不确定硒将如何处理,请不要尝试。
答案 1 :(得分:0)
您可以尝试类似的操作
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
HashMap<String, String> imageMap = new HashMap<String, String>();
boolean isPresent = false;
String actual = "";
while(!isPresent){
//System.out.println("body is "+body);
String current = driver.findElement(By.id("ImagePlaceHolder")).getCssValue("background-image");
if(!actual.equalsIgnoreCase(current)){
WebElement body = driver.findElement(By.id("ImagePlaceHolder"));
actual = current;
if(imageMap.containsKey(actual))
isPresent = true;
else{
imageMap.put(actual, new Date().toString());
System.out.println("Image : " + actual + " appeared at : " + new Date().toString());
}
current = body.getCssValue("background-image");
}
}
这给您所有细节,包括淡出频率。如果您只需要获取图像加载时间,则解析原始字符串和当前字符串以仅比较URL值