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

Фотография

IE driver вопросы


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

#1 Lerny

Lerny

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

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

Отправлено 28 марта 2013 - 08:00

Всем привет,

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

версия 2.31 (32-bit)
IE 9

1) Написал небольшое приложение, которое выполняет тест. На домашнем компе браузер запускается (единственное отличие от рабочей конфигурации 64-битный драйвер), все отлично.
На рабочем компе браузер запускается только из-под IDE (Eclipse, хотя не думаю, что это важно), при запуске из приложения (Tomcat7 - jsf2) браузера не вижу, однако все действия с приложением происходят. Браузер запускается где-то в бэкенде :sad:/>/>

Приведу пример инициализации драйвера (java)
if (props.getProperty("browser").equalsIgnoreCase("IE")) {
	DesiredCapabilities dc = new DesiredCapabilities(); 
	dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, 
	true);
	driver = new InternetExplorerDriver(dc);

2) При переключении из окна в окно (любое модальное-немодальное) тест работает нестабильно, иногда элементы нового окна не находятся.

ExpectedCondition<Boolean> expectation = new
	ExpectedCondition<Boolean>() {
		public Boolean apply(WebDriver driver) {
		       return ((JavascriptExecutor)driver).executeScript("return document.readyState").equals("complete");
		}
	};

int windows = driver.getWindowHandles().size();  

// действия для открытия нового окна	 	

while (driver.getWindowHandles().size() == windows) {
	try {
		Thread.sleep(500);
	} catch (InterruptedException e) {
		e.printStackTrace();	}
}
	      
driver.switchTo().window(getLastElement(driver.getWindowHandles()));

try {
	wait.until(expectation);
} catch(Throwable error) {//catch }

// элемент не всегда находится
WebElement element = (new WebDriverWait(driver, 60))
		  .until(new ExpectedCondition<WebElement>(){
			@Override
			public WebElement apply(WebDriver d) {
				return d.findElement(By.id("subject"));
			}});


  • 0

#2 appmen

appmen

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

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

Отправлено 28 марта 2013 - 08:13

где-то уже было. Браузер запускается как системный процесс. Вам стоит посмотреть как его сделать процессом от обычного пользователя. Алексей Баранцев писал пример для какого-то сервера на этом форуме, возможно вам подойдёт
  • 0

#3 Lerny

Lerny

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

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

Отправлено 28 марта 2013 - 08:23

ссылкой не поделитесь?
не могу найти
  • 0

#4 sawoy

sawoy

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 28 марта 2013 - 09:17

Ключевые слова - "IE Jenkins Hudson".

http://software-test...h__1#entry96979
http://software-test...h__1#entry86981
  • 0

#5 Lerny

Lerny

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

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

Отправлено 28 марта 2013 - 13:10

Спасибо, но для меня это не подходит


По второму вопросу - никто не сталкивался с подобным?
Мне кажется, иногда switchTo не срабатывает...
  • 0

#6 Lerny

Lerny

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

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

Отправлено 28 марта 2013 - 15:44

По второму вопросу разобрался, driver.getWindowHandles() IE возвращает окна в хаотичном порядке, во множестве они не упорядочены.
  • 0

#7 sawoy

sawoy

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

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 28 марта 2013 - 15:48

getLastElement() возвращает последний элемент?
По-моему, никто не гарантирует порядок хэндлов в списке.
Лучше искать разность наборов до и после.

Может дело в этом.

Ну и самое простое проверить - помогает ли sleep: если да, то мы просто надо дождаться изменив условие,
если нет - дело в чем-то другом.
  • 0


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

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