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

Фотография

Selenium - JAVA


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

#1 Galina

Galina

    Постоянный участник

  • Members
  • PipPipPip
  • 151 сообщений
  • Город:Москва

Отправлено 04 июня 2009 - 19:58

Добрый день!

Я совсем-совсем чайник с Selenium'ом, да и с джавой. Есть следующая проблема-вопрос:

Есть web-приложение (использую firefox), при открытии сайта - вываливается мессадж-бокс с запросом на аутентификацию. Selenium IDE этот бокс не видит, просто не воспринимает, но все дальнейшее записывает. Я записываю тест. Сохраняю как java. Редактирую, чтобы откомпилилось. Компилирую. Запускаю на выполнение. Новое окно firefox открывается, и появляется бокс аутентификации. Скрипт завершается с ошибкой по тайм-ауту на OpenSite. Вопрос к знающим: как это все добро заставить видет аутентификацию, да еще и вводить логин/пароль.

Честно признаюсь, что пока не копалась в этом. Пишу тут с надеждой, что кто-то знает ответ, и съэкономит мое время (не кидайтесь тухлыми помидорами :)). Заранее благодарю.

С Уважением,
Галина
  • 0

#2 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 04 июня 2009 - 21:07

Да, Selenium не может так просто пройти basic-аутентификацию.
Выхода здесь два:
1. Использовать нативные методы Selenium'а (*Native, доступны только при работе через RC).
2. Вводить логин/пароль сразу в URL'е по типу http://name:pass@myserver.com. Но надо помнить о безопасности.

PS: не такой уж это и чайничный вопрос :) даже наоборот
  • 0

#3 the_norn

the_norn

    Активный участник

  • Members
  • PipPip
  • 91 сообщений
  • ФИО:Kononov Roman

Отправлено 05 июня 2009 - 06:39

либо дать доступ для этого айпишника/машины без авторизации, конечно если только авторизация введена на время разработки
  • 0

#4 Galina

Galina

    Постоянный участник

  • Members
  • PipPipPip
  • 151 сообщений
  • Город:Москва

Отправлено 05 июня 2009 - 19:29

Спасибо за ответы, буду пробовать :)
  • 0

#5 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 08 июня 2009 - 07:57

Да, Selenium не может так просто пройти basic-аутентификацию.
Выхода здесь два:
1. Использовать нативные методы Selenium'а (*Native, доступны только при работе через RC).
2. Вводить логин/пароль сразу в URL'е по типу http://name:pass@myserver.com. Но надо помнить о безопасности.

PS: не такой уж это и чайничный вопрос :) даже наоборот

Добрый день,

Я не эксперт в Селене, НО http://name:pass@myserver.com работает только для FireFox. Для IE это работает только если вы сделаете прыжок с переподвыподвертом, описанный в селеновском вики: How do I use Selenium to login to sites that require HTTP basic authentication

Удачи, будут вопросы - обращайтесь.
  • 0
Алексей Булат
Про Тестинг

#6 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 08 июня 2009 - 08:13

Я не эксперт в Селене, НО http://name:pass@myserver.com работает только для FireFox. Для IE это работает только если вы сделаете прыжок с переподвыподвертом, описанный в селеновском вики

Нет, здесь как раз всё впорядке, работает во всех браузерах, но в IE эта функциональность просто по умолчанию отключена, никакой это не переподвыверт. К тому же Selenium RC сам включает эту функциональность при запуске теста, так что в этом случае настраивать ничего не нужно.
  • 0

#7 Galina

Galina

    Постоянный участник

  • Members
  • PipPipPip
  • 151 сообщений
  • Город:Москва

Отправлено 08 июня 2009 - 20:54

Новый вопрос появился:

какой java-метод разворачивает окно браузер по максимуму?
  • 0

#8 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 08 июня 2009 - 21:13

Новый вопрос появился:

какой java-метод разворачивает окно браузер по максимуму?

DefaultSelenium#windowMaximize()
Рекомендую почитать все Java-доки по драйверу, это не займёт много времени, зато потом будет намного проще.
  • 0

#9 Galina

Galina

    Постоянный участник

  • Members
  • PipPipPip
  • 151 сообщений
  • Город:Москва

Отправлено 09 июня 2009 - 06:09

Новый вопрос появился:

какой java-метод разворачивает окно браузер по максимуму?

DefaultSelenium#windowMaximize()
Рекомендую почитать все Java-доки по драйверу, это не займёт много времени, зато потом будет намного проще.


Спасибо, работает.

Почитаю, спасибо за совет!
  • 0

#10 George

George

    Активный участник

  • Members
  • PipPip
  • 105 сообщений
  • Город:Минск

Отправлено 10 июля 2009 - 11:54

Привет, что делать если не работает http://name:pass@myserver.com и все тут! Появляется время от времени с незаполненными полями все равно.
  • 0

#11 vitorg

vitorg

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений

Отправлено 15 июля 2009 - 23:50

Привет, что делать если не работает http://name:pass@myserver.com и все тут! Появляется время от времени с незаполненными полями все равно.

Если честно, то ничего не понял из этого сообщения. Что значит "не работает и всё тут"? Что происходит? Что хочется, чтобы происходило? Какой тип авторизации?
  • 0

#12 horhe

horhe

    Активный участник

  • Members
  • PipPip
  • 100 сообщений
  • ФИО:Юрко
  • Город:Kraków

Отправлено 30 июня 2010 - 14:08

появилась и у меня такая проблема. перехожу по ссылке http://name:pass@myserver.com FF открывает окошко с сообщением "You are about to log in to the site "myserver.com " with the username "name"" и кнопками. а вот нажать на Ок так и не получается нb нативным selenium.keyPressNative("10") ни через selenium.chooseOkOnNextConfirmation(). как же её проклятую победить-то? тем более что если сделать всё руками то после подтверждения всё равно вываливается броузерная форма с "введите логин пароль" до которой селениум тоже не может дотянуться. логин-пароль введены, а Ок нажать о5 же не получается.
RC+Java
  • 0
Piobaireachd isn't mysterious, difficult or hard - it's just music...

#13 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 01 июля 2010 - 03:02

как уже не раз сообщалось - телепатов среди нас мало и они хорошо шифруются
или покажите код или откройте наружу сервер
  • 0

#14 Ivis

Ivis

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

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 21 ноября 2012 - 14:24

Подскажите, пожалуйста, как изменить код, если окно аутентификации выскакивает несколько раз - причём каждый раз оно требует аутентификации с разными доменами.
К примеру, несколько окон аутентификаций выскакивает при загрузке страницы, одно при входе в систему (login) под определённым пользователем, одно - после выхода из системы (logout).

Весь код выглядит так:

package com.example.tests;

import java.util.regex.Pattern;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

public class LoginLogout {
private WebDriver driver;
private String baseUrl;
private StringBuffer verificationErrors = new StringBuffer();
@Before
public void setUp() throws Exception {
driver = new FirefoxDriver();
baseUrl = "http://site1.domain.com/";;
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}

@Test
public void testLoginLogout() throws Exception {
driver.get("http://login:passwor...te1.domain.com");
driver.findElement(By.id("centerId")).clear();
driver.findElement(By.id("centerId")).sendKeys("***");
driver.findElement(By.id("login")).clear();
driver.findElement(By.id("login")).sendKeys("*****");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("*****");
driver.findElement(By.id("submit")).click();
driver.findElement(By.linkText("Log out")).click();
}

@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}

private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
}


В процессе его выполнения как минимум трижды высвечивается окно аутентификации (логин и пароль везде одинаковы):
- к http://site1.domain.com/ (это основной сайт - окно не высвечивается, т.к. прописал "http://login:passwor...te1.domain.com")
- к http://site2.domain.com/
- к http://site3.domain.com/

Как избавиться от всех возможных окон аутентификации, которые могут появиться при работе с системой?
  • 0

#15 user12

user12

    Специалист

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


Отправлено 21 ноября 2012 - 14:53

Это известная проблема с NTLM authentication. К сожелению (или счастью) я ней лично не сталкивался, но имхо данная ссылка вам должна помочь

http://automated-tes...ogo-okna-logina
  • 0

#16 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 21 ноября 2012 - 16:14

у меня была та же проблема. Хром отлично работает с этой аутентификацией и разрешает работу с сайтом. Фаерфокс отображает форму, вводит логин\пароль но энтер не наживает. Для ФФ решил проблему просто: сохранил профиль с сохранённым паролем и окошка этого не вижу.
Слава богу, добавили "разрешённый" ИП и проблема отпала
  • 0

#17 Ivis

Ivis

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

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 21 ноября 2012 - 16:43

Для ФФ решил проблему просто: сохранил профиль с сохранённым паролем и окошка этого не вижу.


Можно поподробнее, как это сделать?
  • 0

#18 Ivis

Ivis

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

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 21 ноября 2012 - 16:45

Это известная проблема с NTLM authentication. К сожелению (или счастью) я ней лично не сталкивался, но имхо данная ссылка вам должна помочь

http://automated-tes...ogo-okna-logina


К сожалению, не нашёл именно моего случая. В основном там обсуждают то, как решить проблему с одним модальным окном... а у меня их несколько.
  • 0

#19 appmen

appmen

    Опытный участник

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 22 ноября 2012 - 07:44


Это известная проблема с NTLM authentication. К сожелению (или счастью) я ней лично не сталкивался, но имхо данная ссылка вам должна помочь

http://automated-tes...ogo-okna-logina


К сожалению, не нашёл именно моего случая. В основном там обсуждают то, как решить проблему с одним модальным окном... а у меня их несколько.

а вот теперь я уже ничего не понял. Возможно вам мой вариант не подойдёт. Если вы открываете сайт вручную, то сколько раз появляется окошко аутентификации? + если вы в ФФ нажмёте сверху (или где там появляется эта кнопочка) "Сохранить пароль", то следующий раз на сайт вы заходите без авторизации?
  • 0

#20 Ivis

Ivis

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

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 22 ноября 2012 - 09:07



Это известная проблема с NTLM authentication. К сожелению (или счастью) я ней лично не сталкивался, но имхо данная ссылка вам должна помочь

http://automated-tes...ogo-okna-logina


К сожалению, не нашёл именно моего случая. В основном там обсуждают то, как решить проблему с одним модальным окном... а у меня их несколько.

а вот теперь я уже ничего не понял. Возможно вам мой вариант не подойдёт. Если вы открываете сайт вручную, то сколько раз появляется окошко аутентификации? + если вы в ФФ нажмёте сверху (или где там появляется эта кнопочка) "Сохранить пароль", то следующий раз на сайт вы заходите без авторизации?


Когда просто работаю с браузером - бывает по разному (при первом входе - появляются окошки, при последующих обычно нет).
Но при прогоне кода через эклипс - постоянно всплывают все окошки аутентификации.
С первым окном я ещё разобрался (http://site1.domain.com/), а вот с остальными не знаю как быть...
  • 0


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

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