Selenide. не могу вывести лог из консоли браузера с ошибками

На сайте селенида не смог найти информации о логгировании и сохранении в файл ошибок из консоли хрома. На AT беглый поиск тоже не дал результатов. Помогите, ткните в туториал или подскажите куда какие строки нужно добавить. спасибо заранее.

В хроме, вроде как работает, но не полностью.

1 лайк

LogEntries logEntries = driver.manage().logs().get(LogType.BROWSER);
добавлять в @Before?
куда будут выводиться логи?в консоль ide?

Логи будут выводиться в logEntries.

1 лайк

Спасибо огромное! Только появилась новая проблема - на каждый метод открывается по новому окну браузера селениумом. И логи выводятся только от окон, открытых селениумом, а не селенидом

Доступ к драйверу в селениде - WebDriverRunner.getWebDriver().manage() - вот замените на это driver.manage()

1 лайк

я правильно понимаю, что LogEntries logEntries = WebDriverRunner.getWebDriver().manage().logs().get(LogType.BROWSER); начинает писать логи и складывать их в logEntries. В конце отчета, например методом @After я выведу их System.out.println(logEntries);? Непонято где должен находиться `LogEntries logEntries = WebDriverRunner.getWebDriver().manage().logs().get(LogType.BROWSER);. в @Before или в первом методе или в начале класса?

Понимаете правильно.
Поставить это дело после открытия браузера.

сейчас не могу вывести logEntries. Может, вам удобнее будет помось мне, если я скину весь код или залью как проектик на гитхаб?

на данный момент тест выглядит так

import com.codeborne.selenide.Condition;
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.WebDriverRunner;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.logging.LogEntries;
import org.openqa.selenium.logging.LogType;

import static com.codeborne.selenide.Selenide.*;

public class Test1 {

    @Test
    public void additional(){

        open("какой-то сайт"); 
        LogEntries logEntries = WebDriverRunner.getWebDriver().manage().logs().get(LogType.BROWSER);
        Configuration.holdBrowserOpen = true;
        Configuration.timeout=10000;
        $(By.name("Password")).val("Qwerty1");
        $(By.name("button")).click();
        $(By.cssSelector(".sidebar__controls__item > .tab-link")).click(); 
        $(By.cssSelector("#navigator > div > div.navigator__main > div.navigator__main__content > div > div > button:nth-child(1)")).doubleClick(); 
        $(By.xpath("//span[contains(.,'katalon t1')]")).doubleClick(); 
        $(By.className("ui-add__trigger")).click(); 
        $(By.linkText("Справочник")).click(); 
        $(By.className("center-block__button")).shouldBe(Condition.enabled).click(); 
        $(By.cssSelector(".btn-primary")).click(); 
        //sleep(1000);
        $(By.cssSelector(".ui-iconbutton:nth-child(13)")).shouldBe(Condition.enabled).click();
        $(By.xpath("//td[2]/div")).doubleClick(); 
        $(By.cssSelector("#editorForm > .ng-untouched")).shouldBe(Condition.visible).val("перекресток");
        $(By.cssSelector(".-save")).click(); 
        sleep(500);
        $(By.cssSelector(".-save")).click();
        System.out.println(logEntries);
    }
}

Замените это на это:

        for (LogEntry log:logEntries) {
            System.out.println(log.getTimestamp() + " " + log.getLevel() + " " + log.getMessage());
        }
1 лайк

а в случае, если js ошибок не было что то должно возвращаться?

Не знаю, у меня SEVERE и INFO выводились, на счет ERROR не знаю, надо смотреть.

Все равно не выводится, но да ладно. Попробую еще сам поразбираться. Но спасибо огромное за подсказки

разобрался. помогло следующее: в начале метода, после открытия страницы

Logs logs = WebDriverRunner.getWebDriver().manage().logs();
        LogEntries logEntries = WebDriverRunner.getWebDriver().manage().logs().get(LogType.BROWSER);

в конце метода

for (LogEntry logEntry : logEntries) {
            System.out.println(logEntry.getMessage());
        }

так же была какая то проблема с slf4j. в консоь падала ошибка
“SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See SLF4J Error Codes for further details.”
добавил в pom.xml

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.8.0-beta2</version>
    </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.8.0-beta2</version>
            <scope>test</scope>
        </dependency>