Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Перестал запускаться Chrome на Selenide!

chrome
java
selenide
webdriver
Теги: #<Tag:0x00007fedb74503b0> #<Tag:0x00007fedb70e3c68> #<Tag:0x00007fedb70e3ab0> #<Tag:0x00007fedb70e3948>

(Vitaliy Schwarz) #1

На ровном месте перестал запускаться Хром, постоянно пытается через Фаерфокс. Запускаю резервную копию - все работает. Не хочу все заново редактировать, помогите плиз!!! Вот код (В БРАУЗЕР стоит “хром”):

@BeforeTest
  public void setup() {
    ChromeDriverManager.getInstance().setup();
    Configuration.browser = BROWSER;
    Configuration.timeout = TIMEOUT;
    adminAuthorisation.adminAuthorisation();
  }

  @Test
  public void smokeTest() {
...

Ошибка:

"C:\Program Files\Java\jdk1.8.0_131\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3\lib\idea_rt.jar=50419:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3\plugins\testng\lib\testng-plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;C:\Users\Schwarz\IdeaProjects\automation2\target\test-classes;C:\Users\Schwarz\IdeaProjects\automation2\target\classes;C:\Users\Schwarz\.m2\repository\org\testng\testng\6.13.1\testng-6.13.1.jar;C:\Users\Schwarz\.m2\repository\com\beust\jcommander\1.72\jcommander-1.72.jar;C:\Users\Schwarz\.m2\repository\com\codeborne\selenide\4.8\selenide-4.8.jar;C:\Users\Schwarz\.m2\repository\org\apache\httpcomponents\httpcore\4.4.7\httpcore-4.4.7.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-java\3.6.0\selenium-java-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-api\3.6.0\selenium-api-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\3.6.0\selenium-chrome-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\3.6.0\selenium-edge-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\3.6.0\selenium-firefox-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\3.6.0\selenium-ie-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-opera-driver\3.6.0\selenium-opera-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\3.6.0\selenium-remote-driver-3.6.0.jar;C:\Users\Schwarz\.m2\repository\org\seleniumhq\selenium\selenium-support\3.6.0\selenium-support-3.6.0.jar;C:\Users\Schwarz\.m2\repository\net\bytebuddy\byte-buddy\1.7.5\byte-buddy-1.7.5.jar;C:\Users\Schwarz\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\Schwarz\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\Schwarz\.m2\repository\net\java\dev\jna\jna\4.1.0\jna-4.1.0.jar;C:\Users\Schwarz\.m2\repository\net\java\dev\jna\jna-platform\4.1.0\jna-platform-4.1.0.jar;C:\Users\Schwarz\.m2\repository\com\google\code\gson\gson\2.8.2\gson-2.8.2.jar;C:\Users\Schwarz\.m2\repository\com\google\guava\guava\23.0\guava-23.0.jar;C:\Users\Schwarz\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\Schwarz\.m2\repository\com\google\errorprone\error_prone_annotations\2.0.18\error_prone_annotations-2.0.18.jar;C:\Users\Schwarz\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\Schwarz\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\Schwarz\.m2\repository\net\lightbody\bmp\browsermob-core\2.1.5\browsermob-core-2.1.5.jar;C:\Users\Schwarz\.m2\repository\net\lightbody\bmp\littleproxy\1.1.0-beta-bmp-17\littleproxy-1.1.0-beta-bmp-17.jar;C:\Users\Schwarz\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.8.9\jackson-core-2.8.9.jar;C:\Users\Schwarz\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.8.9\jackson-databind-2.8.9.jar;C:\Users\Schwarz\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.8.9\jackson-annotations-2.8.9.jar;C:\Users\Schwarz\.m2\repository\dnsjava\dnsjava\2.1.8\dnsjava-2.1.8.jar;C:\Users\Schwarz\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.25\jcl-over-slf4j-1.7.25.jar;C:\Users\Schwarz\.m2\repository\com\jcraft\jzlib\1.1.3\jzlib-1.1.3.jar;C:\Users\Schwarz\.m2\repository\io\netty\netty-all\4.0.51.Final\netty-all-4.0.51.Final.jar;C:\Users\Schwarz\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.58\bcprov-jdk15on-1.58.jar;C:\Users\Schwarz\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.58\bcpkix-jdk15on-1.58.jar;C:\Users\Schwarz\.m2\repository\net\lightbody\bmp\mitm\2.1.5\mitm-2.1.5.jar;C:\Users\Schwarz\.m2\repository\com\codeborne\phantomjsdriver\1.4.3\phantomjsdriver-1.4.3.jar;C:\Users\Schwarz\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\Schwarz\.m2\repository\io\github\bonigarcia\webdrivermanager\2.0.1\webdrivermanager-2.0.1.jar;C:\Users\Schwarz\.m2\repository\org\slf4j\slf4j-api\1.7.24\slf4j-api-1.7.24.jar;C:\Users\Schwarz\.m2\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;C:\Users\Schwarz\.m2\repository\org\apache\commons\commons-lang3\3.5\commons-lang3-3.5.jar;C:\Users\Schwarz\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\Schwarz\.m2\repository\org\rauschig\jarchivelib\0.7.1\jarchivelib-0.7.1.jar;C:\Users\Schwarz\.m2\repository\org\apache\commons\commons-compress\1.9\commons-compress-1.9.jar;C:\Users\Schwarz\.m2\repository\org\jsoup\jsoup\1.10.2\jsoup-1.10.2.jar;C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2017.3\plugins\testng\lib\jcommander.jar" org.testng.RemoteTestNGStarter -usedefaultlisteners false -socket50418 @w@C:\Users\Schwarz\AppData\Local\Temp\idea_working_dirs_testng.tmp -temp C:\Users\Schwarz\AppData\Local\Temp\idea_testng.tmp
дек 11, 2017 8:33:33 PM com.codeborne.selenide.impl.WebDriverThreadLocalContainer getWebDriver
INFO: No webdriver is bound to current thread: 1 - let's create new webdriver
дек 11, 2017 8:33:33 PM com.codeborne.selenide.webdriver.FirefoxDriverFactory createFirefoxDriver
INFO: Firefox 48+ is currently not supported by Selenium Firefox driver. Use browser=marionette with geckodriver, when using it.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

(asolntsev) #2

Похоже, у вас метод @BeforeTest не запускается.
Это что за аннотация - JUnit или TestNG?
И вообще, приведите полный код, иначе ничего сказать невозможно.

P.S. Интересно, что означает “резервная копия”?


(Pavel Ozerov) #3

А валится только если запущены несколько тестов подряд, или же если запускаете какой-нибудь единственный тест проблема остается? Такое бывает, когда тесты не изолированы и используют не заново созданные инстансы, а старые, взятые из памяти. У себя я реализовал это отдельным классом, который позволяет манипулировать окнами:
https://github.com/sant0ku/selenide-helpers/blob/master/WindowManager.java (особенно обратите внимание на метод closeAllWindows, который в моем случае вызывается перед окончанием каждого теста). Там есть подробный README, где описано, как это использовать. Надеюсь, что это сделает вашу работу проще.


(Vitaliy Schwarz) #4

TestNG, вот полный код, ниче интересного) Резервная - просто прошлая версия, эта чуть с рефакторингом действующих классов по стандартам.

public class SmokeTest {
  AdminAuthorisation adminAuthorisation = new AdminAuthorisation();
  Header header = new Header();
  ManageAddons manageAddons = new ManageAddons();
  Users users = new Users();
  Auditor auditor = new Auditor();

  @BeforeTest
  public void setup() {
    ChromeDriverManager.getInstance().setup();
    Configuration.browser = BROWSER;
    Configuration.timeout = TIMEOUT;
    adminAuthorisation.adminAuthorisation();
  }

  @Test
  public void smokeTest() {
    //before test
    header.goToUsersPage();
    users.checkUser();
    header.goToManageAddonsPage();
    manageAddons.checkAuditor();
    //test
    header.goToManageAddonsPage();
    manageAddons.uploadAuditor();
    header.goToUsersPage();
    users.createUser();
    header.goToAuditorPage();
    auditor.userCheck();
  }
}

(Vitaliy Schwarz) #5

Всего один-единственный тестик (


(asolntsev) #6

Это не полная версия. Импорты тоже очень важны, как я и сказал в предыдущем комментарии.

P.S. Как бы очевидно, что проблема именно в “рефакторинге действующих классов”.


(Vitaliy Schwarz) #7

Да это понятно и в то же время невероятно, только косметика была… вот импорты:

import com.codeborne.selenide.Configuration;
import com.enhancera.automation.auditor.jira.auditor.Auditor;
import com.enhancera.automation.auditor.jira.header.Header;
import com.enhancera.automation.auditor.jira.pages.ManageAddons;
import com.enhancera.automation.auditor.jira.pages.AdminAuthorisation;
import com.enhancera.automation.auditor.jira.pages.Users;
import io.github.bonigarcia.wdm.ChromeDriverManager;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

import static com.enhancera.automation.auditor.jira.ConfigurationData.BROWSER;
import static com.enhancera.automation.auditor.jira.ConfigurationData.TIMEOUT;

(Vitaliy Schwarz) #8

И я проверил вашу версию, на счет того, что не видит @BeforeTest - походу оно вообще не видит аннотации testng…


(asolntsev) #9

Если бы вообще не видел, то и метод smokeTest() бы не запускался.


(Vitaliy Schwarz) #10

а он и не запускается) при запуске проекта просто открывает пустую страницу ФФ и все.


(Vitaliy Schwarz) #11

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

private SelenideElement deleteButton = $("a.aui-button").shouldHave(text("Uninstall"));

(Sergey Rybakin) #12

Странно, конечно: дискуссия начата про одно, а последний вопрос о другом.

Про последний вопрос смею предположить, что вот этот элемент deleteButton, просто напросто “не виден”.
Попробуйте перед тем как что-то с ним делать, проскроллить до этого элемента.
Например, deleteButton.scrollTo();


(Борис Осипов) #13

Потому что $("a.aui-button").shouldHave(text("Uninstall")); запустит браузер чтобы выполнить проверку что элемент имеет такой текст.
Класс с этим полем вы создаете как поле в тесте => этот код запускается раньше чем Before методы.


(Vitaliy Schwarz) #14

Уже понял, спасибо.