Перейти к содержимому

Фотография

Автоматичекий заход на почту

java selenium gmail geckodriver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 07 декабря 2017 - 20:03

Задача:  Автоматический зайти на почту

 

Пример кода:

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class autoLogin {
public static void main(String[] args) {

// Create a new instance of the Firefox driver
WebDriver driver = new FirefoxDriver();
// Load local geckodriver
System.setProperty("webdriver.gecko.driver", "C:/Selenium/");
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
// Navigate to URL
driver.get("https://mail.google.com/");
// Maximize the window.
driver.manage().window().maximize();
// Enter UserName
driver.findElement(By.id("Email")).sendKeys(" YOUR USER NAME");
// Enter Password
driver.findElement(By.id("Passwd")).sendKeys("YOUR PASSWORD");
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// Click on 'Sign In' button
driver.findElement(By.id("signIn")).click();
//Click on Compose Mail.
driver.findElement(By.xpath("//div[@class='z0']/div")).click();
// Click on the image icon present in the top right navigational Bar
driver.findElement(By.xpath("//div[@class='gb_1 gb_3a gb_nc gb_e']/div/a")).click();
// Click on 'Logout' Button
driver.findElement(By.xpath("//*[@id='gb_71']")).click();
// Close the browser.
driver.close();
}
}

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

                   и на этом всё останавливается...

 

Прикрепленный файл  Untitled.jpg   22,99К   0 Количество загрузок:

 

Что я упускаю или может env не настроено, как положено?

 

Windows10 - IntelliJ 2017.2.6


  • 0

#2 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 08 декабря 2017 - 07:45

сначала
System.setProperty
Потом
WebDriver driver = new FirefoxDriver();

  • 0

#3 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 08 декабря 2017 - 07:59

0. Сообщение выше.

1. Путь не полный до драйвера - System.setProperty("webdriver.gecko.driver", "C:/Selenium/");

2. Указывайте какие версии вы вообще используете Селениума, ФаерФокса.

3. Указывайте сообщения об ошибке (и не плохо самому учиться их читать), что получаете в консоли, чтобы хорошо было понятно в чём именно проблема.


  • 0

#4 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 08 декабря 2017 - 09:07

Windows 10 -64 bit
selenium jar-3.8.1
Gecko driver v0.19.1

Selenium WebDriver 3.8.1

JUnit 4.12

FF 52.5 (64bit)

 

Похоже на какую-то глобальную несостыковку версий...

Проблема общая, т.к.  всё стопорится после открытия FF

 

Для кода выше, после force закрытия FF ("X")  --- всё застревает на прослушивании порта 2828

1512723789159	geckodriver	INFO	geckodriver 0.19.1
1512723789168	geckodriver	INFO	Listening on 127.0.0.1:8430
1512723789904	mozrunner::runner	INFO	Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-profile" "C:\\Users\\Vadiks\\AppData\\Local\\Temp\\rust_mozprofile.ov6qKHNLm9lJ"
1512723790814	Marionette	INFO	Listening on port 2828  /// -----  здесь я вырубил FF ----
Exception in thread "main" org.openqa.selenium.WebDriverException: Process unexpectedly closed with status: 0
Build info: version: '3.8.1', revision: '6e95a6684b', time: '2017-12-01T18:33:54.468Z'
System info: host: 'VADIKS', ip: '10.0.0.3', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_151'
Driver info: driver.version: FirefoxDriver
remote stacktrace: stack backtrace:
   0:           0x47e934 - <no info>
   1:           0x47f0a3 - <no info>
   2:           0x442649 - <no info>
   3:           0x449cc3 - <no info>
   4:           0x42a890 - <no info>
   5:           0x406f5e - <no info>
   6:           0x40cfc9 - <no info>
   7:           0x6bef19 - <no info>
   8:           0x420756 - <no info>
   9:           0x6b96e0 - <no info>
  10:     0x7ffb172f8102 - BaseThreadInitThunk
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$new$0(W3CHandshakeResponse.java:57)
	at org.openqa.selenium.remote.W3CHandshakeResponse.lambda$getResponseFunction$2(W3CHandshakeResponse.java:104)
	at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:123)

  • 0

#5 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 08 декабря 2017 - 09:42

Для версии такого драйвера нужен Firefox 55.0 или выше

И битность драйвера и браузера должны совпадать.


  • 1

#6 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 08 декабря 2017 - 14:40

Спасибо, добрый человек....  Выйти из этого замкунутого круга удалось downgrade geckodriver --> 0.17

 

Проблема, которая осталась, то что Firefox (или GMAIL в целом) поменял типы идентификаторов на многие элементы, включая password,

сделав последний скрытым и метод driver.findElement(By.id("password")).sendKeys("<password>");  не работает

 

поэтому пройдя идентификацию юзера,

 

получаю Exception

1512742783763	geckodriver	INFO	Listening on 127.0.0.1:17024
1512742784511	geckodriver::marionette	INFO	Starting browser C:\Program Files\Mozilla Firefox\firefox.exe with args ["-marionette"]
1512742785425	Marionette	INFO	Listening on port 65036
1512742785549	Marionette	WARN	TLS certificate errors will be ignored for this session
Dec 08, 2017 4:19:46 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: Element is not visible

Код объекта:

 

Прикрепленный файл  password.jpg   30,64К   0 Количество загрузок:

<input class="whsOnd zHQkBf" jsname="YPqjbf" autocomplete="current-password" spellcheck="false" tabindex="0" aria-label="Enter your password" name="password" autocapitalize="off" autocorrect="off" dir="ltr" data-initial-dir="ltr" data-initial-value="" badinput="false" type="password">

<div jsname="YRMmle" class="AxOyFc snByac" aria-hidden="true">Enter your password</div>

Как можно сделать корректную обработку hidden элементов?


  • 0

#7 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 08 декабря 2017 - 14:46

Кликните чуть выше по Дому, затем сендкейз.


  • 0

#8 Vikonder

Vikonder

    Новый участник

  • Members
  • Pip
  • 31 сообщений

Отправлено 08 декабря 2017 - 15:39

Кликните чуть выше по Дому, затем сендкейз.

 

Усли вы имеете ввиду это

 

Прикрепленный файл  DOM.jpg   181,65К   1 Количество загрузок:

 

то там нет метода sendKeys

 

или я не понял о чем речь...


  • 0



Темы с аналогичным тегами java, selenium, gmail, geckodriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных