у меня есть два класса независимых, использующих два отдельных потока в Main классе.
                  
                  
                  
                  
                  
                  При проходе дебаггом класса, который запускает один из сайтов, у меня открывается сайт другого класса. 
                  
                  
                  
                  
                  
                  
                  
                  
                  То есть, допустим, у меня есть класс:
                  
                  
                  
                  
                  
                  
                  
                  
                  public class GBFeedReader implements Runnable {
                  
                  
                  
                  
                  
                      //private static ChromeOptions chOptions;
                  
                  
                      private DatabaseConnections databaseConnections = new DatabaseConnections();
                  
                  
                  
                  
                  
                      public void run() {
                  
                  
                  
                  
                  
                          // Setup ChromeDriver using WebDriverManager
                  
                  
                          WebDriverManager.chromedriver().setup();
                  
                  
                  
                  
                  
                          // Set Chrome options and capabilities
                  
                  
                          ChromeOptions chromeOptions = new ChromeOptions();
                  
                  
                          //WebDriverManager.chromedriver().browserVersion("119.0.6045.160").setup();
                  
                  
                          //WebDriverManager.chromedriver().capabilities(chOptions).setup();
                  
                  
                          //WebDriverManager.chromedriver().capabilities(chromeOptions).setup();
                  
                  
                  
                  
                  
                          chromeOptions.addArguments("--headless");
                  
                  
                          chromeOptions.addArguments("--disable-gpu");
                  
                  
                          chromeOptions.addArguments("--disable-extensions");
                  
                  
                  
                  
                  
                          ChromeDriver driver = new ChromeDriver(chromeOptions);
                  
                  
                          driver.get("https://....");
                  
                  
                  ...
                  
                  
                  
                  
                  
                  и второй класс по типу:
                  
                  
                  
                  
                  
                  public class BGFeedReader implements Runnable {
                  
                  
                      private DatabaseConnections databaseConnections = new DatabaseConnections();
                  
                  
                  
                  
                  
                      public void run() {
                  
                  
                          ChromeOptions options = new ChromeOptions();
                  
                  
                          //WebDriverManager.chromedriver().browserVersion("118.0.5993.118").setup();
                  
                  
                          //WebDriverManager.chromedriver().browserVersion("114.0.5735.90").setup();
                  
                  
                          //WebDriverManager.chromedriver().setup();
                  
                  
                          /*options.addArguments("--headless");
                  
                  
                          options.addArguments("--disable-gpu");
                  
                  
                          options.addArguments("--disable-extensions");*/
                  
                  
                  
                  
                  
                          ChromeDriver driver = new ChromeDriver(options);
                  
                  
                          driver.get("https://www.banggood.com/new-arrivals.html");
                  
                  
                          //driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
                  
                  
                  
                  
                  
                  ...
                  
                  
                  
                  
                  
                  связываются Main-ом в следующем виде:
                  
                  
                  
                  
                  
                      public static void main(String[] args) {
                  
                  
                          //PropertyConfigurator.configure("D:\\IdeaProject\\maven-bot\\src\\main\\resources\\log4j.properties");
                  
                  
                          // creation pool with 2 threads
                  
                  
                          //A ScheduledExecutorService is capable of scheduling
                  
                  
                          // tasks to run either periodically or once after a certain amount of time has elapsed.
                  
                  
                          ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2);
                  
                  
                  
                  
                  
                          long initialDelay = 0; // the time from now to delay execution - первоначальная задержка
                  
                  
                          long period = 1; // the period between successive executions - повторение ежедневное
                  
                  
                          scheduler.scheduleAtFixedRate(new GBFeedReader(), initialDelay, period, TimeUnit.DAYS);
                  
                  
                          sleepThread();
                  
                  
                          scheduler.scheduleAtFixedRate(new BGFeedReader(), initialDelay, period, TimeUnit.DAYS);
                  
                  
                          ApiContextInitializer.init();
                  
                  
                          TelegramBotsApi botsApi = new TelegramBotsApi();
                  
                  
                          try {
                  
                  
                              botsApi.registerBot(new Bot());
                  
                  
                          } catch (TelegramApiException e) {
                  
                  
                              e.printStackTrace();
                  
                  
                          }
                  
                  
                      }
                  
                  
                  
                  
                  
                  В итоге, дебажив, код класса GBFeedReader, мне открывает BGFeedReader. 
                  
                  
                  
                  
                  
                  Вопрос, кто-нибудь подсказать, я что-то неправильно понимаю? Моя конфигурация запуска дебага следующая (скрин)
                  
                  
                
v
Если что-нибудь выродиться, отпишу с апдейтами, пока вопрос столбом. Не могу понять причину, т.к. от этого зависит мое дальнейшего прохождение по коду нужного мне класса дальше.
короче, из последних апдейтов. У меня на разных версиях селениума разный результат. Например, если брать версии от 3.x.x, то не тот сайт открывается при использовании нескольких потоков, а если брать от 4.x.x, то вообще игнорирует и ничего не открывает, никаких браузеров. Мой первый вывод, что это связано с версионизацией, но как её обойти, вот это уже реально проблема.
Короче, из последних апдейтов. У меня на разных версиях селениума разный результат. Например, если брать версии от 3.x.x, то не тот сайт открывается при использовании нескольких потоков, а если брать от 4.x.x, то вообще игнорирует и ничего не открывает, никаких браузеров. Мой первый вывод, что это связано с версионизацией, но как её обойти, вот это уже реально вопрос.
Короче, тупее, чем просто закомментировать один из потоков, идей не нашлось, потому что в настройках идеи нельзя выбирать отдельный класс для дебаггинга.
Короче, причина была в другом. Я затупил и в одном классе закомментировал: chromeOptions.addArguments("--headless"); chromeOptions.addArguments("--disable-gpu"); chromeOptions.addArguments("--disable-extensions"); а в другом нет, из-за этого один класс перекрывал другой и отображал мне другое
Обсуждают сегодня