为背景图像编写自动化代码

时间:2018-11-27 07:42:54

标签: java selenium-webdriver

我需要用Java编写自动化代码(硒) 验证方案显示了多少背景图像,并且以什么间隔进行了更改。

URL:-https://www.seniorhousingnet.com/

@然后(“ ^背景图片应显示$”)

=OFFSET($C$5,0,(COLUMN(A8)*n)-1)

要找到背景图片,我编写了一个小型自动化代码,如您在上面看到的,

但是,如果我们观察到背景图像在几秒钟后不断变化。我需要编写代码来显示多少背景图像,以及它以什么间隔不断变化

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

每个图像都有自己独特的“标签”,您可以使用它。

    WebElement image = driver.findElement(By.id("ImagePlaceHolder"));
    String image_name = image.getAttribute("aria-label");

要测量更改时间,可以使用LocalDateTimeDuration.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值