Безголовый драйвер NodeJS Selenium Chrome зависает при получении веб-сайта с URL-адреса

#node.js #selenium #selenium-webdriver #google-chrome-headless

#node.js #селен #selenium-веб-драйвер #google-chrome-безголовый

Вопрос:

Я использую Selenium с NodeJS, чтобы получить какой-то конкретный элемент с веб-сайта. Но мой скрипт работает в системе Debian только с терминалом. Поэтому я использовал безголовый драйвер Chrome, но, к сожалению, скрипты зависают на полученном веб-сайте. Я пытался разместить несколько публичных адресов, таких как, например google.com но это не работает.

Это мой сценарий:

 const chrome = require("selenium-webdriver/chrome");
const firefox = require("selenium-webdriver/firefox");
const { Builder, By, Key, until } = require("selenium-webdriver");

let driver = new Builder()
  .forBrowser("chrome")
  .setChromeOptions(
    new chrome.Options().headless().windowSize({
      width: 640,
      height: 480,
    })
  )
  .build();

const visit = async () => {
  try {
    console.log("This console log is executing");
    await driver.get("http://www.google.com");
    console.log("This console log is not executing");    
  } catch (err) {
    console.log(err);
  }
};

visit();

 

При выполнении моего скрипта ошибка не выводится.
Я проверил связь с google.com используя curl, и все работает правильно.

Комментарии:

1. У меня такая же проблема, вы когда-нибудь это выясняли?

2. К сожалению, нет

3. В итоге я заставил его работать на меня. Я на Linux, и после того, как я запустил «sudo yum -y groupinstall «GNOME Desktop»», это сработало.