Nano Hash - криптовалюты, майнинг, программирование

org.openqa.selenium.remote.UnreachableBrowserException Ошибка связи с фантомом удаленного браузера js

Я пытаюсь автоматизировать отправку электронной почты Gmail с помощью селена. Я использую phantom js (для безголовых)

Я получаю следующее исключение

org.openqa.selenium.remote.UnreachableBrowserException Ошибка связи с удаленным браузером

Capabilities caps = new DesiredCapabilities();
         ((DesiredCapabilities) caps).setJavascriptEnabled(true);                
         ((DesiredCapabilities) caps).setCapability("takesScreenshot", true);
         ((DesiredCapabilities) caps).setCapability(
                 PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
                 "C:\\jars\\phantomjs-2.0.0-windows\\bin\\phantomjs.exe"
             );
        //File file = new File("C:/jars/phantomjs-2.0.0-windows/bin/phantomjs.exe");             
       // System.setProperty("phantomjs.binary.path", file.getAbsolutePath());        
       WebDriver d = new PhantomJSDriver(caps); 

//WebDriver d=new HtmlUnitDriver();
        WebDriverWait wait = new WebDriverWait(d, 10);
        d.get("https://www.gmail.com/intl/en/mail/help/about.html");
        System.out.println("navigated to gmail");
        d.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        d.manage().window().setSize(new Dimension(1576, 798));;

        d.findElement(By.id("gmail-sign-in")).click();
        System.out.println("Clicked on Signin");
        Thread.sleep(9000);


        d.findElement(By.id("Email")).sendKeys("[email protected]");
        System.out.println("Entered Email");

        Thread.sleep(9000);
        d.findElement(By.id("next")).click();


        System.out.println("Clicked next");
        d.findElement(By.id("Passwd")).sendKeys("your pwd");
        System.out.println("Entered password");
        Thread.sleep(9000);
        d.findElement(By.id("signIn")).click();
        System.out.println("Clicked on signin");
        Thread.sleep(9000);


        d.findElement(By.xpath("html/body/div[7]/div[3]/div/div[2]/div[1]/div[1]/div[1]/div[2]/div/div/div[1]/div/div")).click();
        System.out.println("Clicked on Compose email");
        //Thread.sleep(9000);
        Thread.sleep(9000);


        d.findElement(By.name("to")).sendKeys("your email");
        System.out.println("Entered To address");

        Thread.sleep(9000);
        d.findElement(By.name("q")).click();
        d.findElement(By.name("subjectbox")).sendKeys("PHANTOm Js");

        System.out.println("Entered Subject");
        //WebElement webElement=d.findElement(By.name("subjectbox"));

        /*String keysPressed =  Keys.chord(Keys.CONTROL, Keys.RETURN);
         WebElement element=d.findElement(By.xpath("html/body"));
         element.sendKeys(keysPressed) ;*/
         Thread.sleep(9000);
         d.findElement(By.xpath("html/body/div[14]/div/div/div/div[1]/div[3]/div[1]/div[1]/div/div/div/div[3]/div/div/div[4]/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div/div/div[4]/table/tbody/tr/td[1]/div/div[2]")).click();
        System.out.println("Clicked On send"); 

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

Я не могу понять, я новичок в автоматизации Headless Selenium, пожалуйста, помогите,


  • Не могли бы вы опубликовать версию селена и другие подробности об окружающей среде? 05.08.2015
  • Отправка электронной почты. Интересно, какая технология существует сегодня, которая лучше подходит для этого. 05.08.2015
  • селен версии 2.45 и фантомные окна-2.0.0 05.08.2015
  • @nginx у вас есть уведомление. 05.08.2015
  • Google обслуживает разные страницы в зависимости от строки пользовательского агента и размера области просмотра. Вы должны распечатать исходный код страницы, чтобы увидеть, существует ли элемент и изменился ли он так, как вы его идентифицируете. 05.08.2015

Ответы:


1

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

 d.findElement(By.xpath(".//tr[@class='n1tfz']/td[1]/div[1]/div[2]")).click();
05.08.2015
  • нет, это не сработало, спасибо за помощь, я использую эти xpaths, так как идентификатор меняется. 05.08.2015
  • Не используйте ID , но класс tr всегда один и тот же. Вы делаете снимок экрана, пожалуйста, попробуйте сделать снимок экрана, возможно, есть какая-то другая проблема. Вы можете сделать снимок экрана с помощью ((PhantomJSDriver) d).executePhantomJS(var page=this; +page.render('./screen/1.png');); 05.08.2015
  • да, я делаю снимок экрана, чтобы убедиться, что я на правильном экране, спасибо за помощь 05.08.2015

  • 2

    Я обнаружил, что проблема была с банкой, которую я использовал для jar phantomjsdriver-1.1.0.jar. Теперь я изменил версии jar, и теперь phantomjsdriver-1.2.1.jar работает отлично.

    Спасибо за помощь друзья.

    05.08.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..