Селен не может обнаружить цвет внутри таблицы SAP - PullRequest
0 голосов
/ 31 мая 2019

У меня есть таблица с цветом, который представляет рабочий день, а также выходной или праздничный день.В настоящее время мне нужно, чтобы мой робот игнорировал Public Holiday и Holiday, чтобы я мог это сделать, чтобы найти цвет для заголовка, и робот может уведомить, какое поле вставить, а какое избежать.Но в настоящее время робот не может дать мне цвет RGB, хотя я пробовал код и какое-то решение внутри stackoverflow.

образец заголовка таблицы, который содержит другой цвет enter image description here

<div id="__cell1" class="ZZBlockLayoutCell sapUiBlockHorizontalCell sapUiBlockLayoutCell sapUiBlockLayoutEvenCell" style="-webkit-flex:1;-ms-flex:1;flex:1" data-sap-ui="__cell1">
<div class="sapUiBlockCellContent " aria-labelledby="__cell1-Title">
<div id="__xmlview1--ZZDay1" class="sapMFlexBox sapMFlexBoxAlignContentStretch sapMFlexBoxAlignItemsStretch sapMFlexBoxBGTransparent sapMFlexBoxJustifyStart sapMFlexBoxWrapNoWrap sapMVBox ZZCalendarDateType01" style="height:100%" data-sap-ui="__xmlview1--ZZDay1">
<div id="__data278" class="sapMFlexBoxBGTransparent sapMFlexItem sapMFlexItemAlignAuto" style="order:0;flex-grow:0;flex-shrink:1;flex-basis:auto;min-height:auto;min-width:auto">
<div id="__data279" class="sapMFlexBoxBGTransparent sapMFlexItem sapMFlexItemAlignAuto" style="order:0;flex-grow:0;flex-shrink:1;flex-basis:auto;min-height:auto;min-width:auto">
</div>
</div>
</div>

У меня есть поиск внутри stackoverflow, и большая часть ответа дает мне тот же метод, но я все еще не могу получить его цвет

после того, как я пытаюсь запустить этот код, результат из таблицы, как показано ниже

for (int i = 1; i < 8; i++) {
WebElement ColorMonToSun = driver.findElement(By.id("__cell"+i));   
System.out.println(ColorMonToSun.getCssValue("background-color"));              
}

Результат

rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)


for (int i = 1; i < 8; i++) {
WebElement ColorMonToSun = driver.findElement(By.id("__xmlview1--ZZDay"+i));    
System.out.println(ColorMonToSun.getCssValue("background-color"));              
}

Результат

rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)
rgba(0, 0, 0, 0)

Есть ли на веб-странице SAP другой способ получения цвета?Любое решение для этого будет большой помощью, спасибо!

1 Ответ

0 голосов
/ 10 июня 2019

Я нашел решение этой проблемы, ему нужна небольшая задержка, чтобы Selenium мог определить свой цвет. Я попробовал этот код, и ему удалось найти цвет, если без задержки селен не сможет обнаружитьцвет.

Основной класс

for (int i = 1; i < 8; i++) {

                //Click Related Day
                sleep(1000);
                WebElement ColorMonToSun = driver.findElement(By.id("__xmlview1--ZZDay"+i));
                sleep(1000);
                System.out.println(ColorMonToSun.getCssValue("background-color"));
            }

Класс конфигурации

public static void sleep(long duration) {
        try {
            Thread.sleep(duration);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

Результат

rgba(252, 234, 234, 1)
rgba(252, 234, 234, 1)
rgba(252, 234, 234, 1)
rgba(252, 234, 234, 1)
rgba(252, 234, 234, 1)
rgba(229, 229, 229, 1)
rgba(229, 229, 229, 1)
...