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

Фотография

Selenium Java + IE: The server did not provide any stacktrace informat


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

#1 MarkAvreliy

MarkAvreliy

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Аврелий Марк

Отправлено 19 апреля 2017 - 12:18

Доброе время, друзья.

 

Решил изучить вопрос тестирования селениумом ИЕ. И... наткнулся на следующую банальную проблему, ответ на которую не однозначен.

 

Код:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.WebDriverWait;


public class Yandex {


public static void main(String[] args) 
{
System.setProperty("webdriver.ie.driver", "F:\\Projects\\Eclipse_workspace\\IEDriverServer_Win32_3.3.0\\IEDriverServer.exe");
WebDriver driver=new InternetExplorerDriver();
driver.get("http://www.yandex.ru");
//WebDriverWait wait = new WebDriverWait(driver, 10); 
driver.manage().window().maximize();
System.out.println(driver.getTitle());


}


}

Выдается ошибка:

Started InternetExplorerDriver server (32-bit)
3.3.0.0
Listening on port 11724
Only local connections are allowed
апр 19, 2017 2:28:17 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to get browser (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 14 milliseconds
Build info: version: 'unknown', revision: '5234b32', time: '2017-03-10 09:00:17 -0800'
System info: host: 'PC', ip: '192.168.100.2', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_131'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, ie.enableFullPageScreenshot=true, enablePersistentHover=true, ie.forceCreateProcessApi=false, ie.forceShellWindowsApi=false, pageLoadStrategy=normal, ignoreZoomSetting=false, ie.fileUploadDialogTimeout=3000, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:11724/, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 7cf53503-fe96-42b5-bb3a-0fd1bc6d1c29
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:638)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:661)
at org.openqa.selenium.remote.RemoteWebDriver.getTitle(RemoteWebDriver.java:329)
at Yandex.main(Yandex.java:13)

 

 

Потратил на поиски ответа уже более 2х часов. Были аналогичные вопросы и ответы: "проверь настройки безопасности ИЕ. Должно быть Медиум везде." Проверил. В одном поднял с Лоу до медиум. Другие опустил до медиума. Проблема сохранилась.
Мне вот что интересно. Если запустить ИЕвебдрайвер мануально. по слушает порт 5555. Если через Эклипс, то каждый раз разный. Если бы и этот момент пояснили, было бы крайне прекрасно.
Но а так. Подскажите, у кого какие идеи есть на тему "Unable to get browser", если он запускается, и яндекс открывается.
У меня есть мысль, что код забегает вперед, ИЕ не успевает отработать. Пытался поиграть с Вэйтом, но отсутствие знания семантики не дает развернуть эту идею дальше.
На предложение: "обнови драйвер и пр." отвечу так: всё "свежайшее" и "последнейшее".

 


  • 0

#2 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 19 апреля 2017 - 13:48

Потратил на поиски ответа уже более 2х часов. Были аналогичные вопросы и ответы: "проверь настройки безопасности ИЕ. Должно быть Медиум везде." Проверил. В одном поднял с Лоу до медиум. Другие опустил до медиума. Проблема сохранилась.
Мне вот что интересно. Если запустить ИЕвебдрайвер мануально. по слушает порт 5555. Если через Эклипс, то каждый раз разный. Если бы и этот момент пояснили, было бы крайне прекрасно.
Но а так. Подскажите, у кого какие идеи есть на тему "Unable to get browser", если он запускается, и яндекс открывается.
У меня есть мысль, что код забегает вперед, ИЕ не успевает отработать. Пытался поиграть с Вэйтом, но отсутствие знания семантики не дает развернуть эту идею дальше.
На предложение: "обнови драйвер и пр." отвечу так: всё "свежайшее" и "последнейшее".

Немного не так. Во всех зонах должен быть либо включен, либо выключен чекбокс "Включить защищенный режим". Хотя возможно проблема в другом.


  • 0

#3 MarkAvreliy

MarkAvreliy

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Аврелий Марк

Отправлено 19 апреля 2017 - 15:34

Немного не так. Во всех зонах должен быть либо включен, либо выключен чекбокс "Включить защищенный режим". Хотя возможно проблема в другом.

 

 

 

 

приветствую, Snap. Спасибо за совет.

Так я тоже пробовал. результат аналогичный.


  • 0

#4 MarkAvreliy

MarkAvreliy

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Аврелий Марк

Отправлено 19 апреля 2017 - 15:40

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

 

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;


//import org.openqa.selenium.WebDriver;
//import org.openqa.selenium.ie.InternetExplorerDriver;
//import org.openqa.selenium.support.ui.WebDriverWait;


public class Yandex {


public static void main(String[] args) throws InterruptedException {


System.setProperty("webdriver.ie.driver", "F:\\Projects\\Eclipse_workspace\\IEDriverServer_Win32_3.3.0\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
//driver.get("http://www.yandex.ru");
driver.get("https://www.wikipedia.org");
Thread.sleep(5000);
WebElement link;
link = driver.findElement (By.linkText("English"));
link.click();
Thread.sleep(5000);
WebElement searchBox;
searchBox = driver.findElement(By.id("searchInput"));
searchBox.sendKeys("Software");
Thread.sleep(5000);
driver.quit();
//WebDriverWait wait = new WebDriverWait(driver, 10); 
//driver.manage().window().maximize();
System.out.println(driver.getTitle());


}


}

выдает следующее:

 

ibHbKdx.png

 

Как видимо, ИЕ открыт, нужная страница так же открыта, но... пишет:

Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)


  • 0

#5 checo

checo

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

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 19 апреля 2017 - 17:37

Но там же в логе:

Started InternetExplorerDriver server (32-bit)

.......................

os.arch: 'amd64'

Я аналогичную ошибку получаю с 32-битным драйвером, а вот 64-битный работает хорошо.


  • 0

#6 MarkAvreliy

MarkAvreliy

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Аврелий Марк

Отправлено 19 апреля 2017 - 19:07

Но там же в логе:

Started InternetExplorerDriver server (32-bit)

.......................

os.arch: 'amd64'

Я аналогичную ошибку получаю с 32-битным драйвером, а вот 64-битный работает хорошо.

 

Приветствую, checo.

Как я писал выше, уже пробовал и 64, и 32.

 

пример:

Started InternetExplorerDriver server (64-bit)
3.3.0.0
Listening on port 47309
Only local connections are allowed
апр 19, 2017 10:03:07 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.NoSuchWindowException: Unable to find element on closed window (WARNING: The server did not provide any stacktrace information)

Почему он пишет, что не может найти элемент на закрытом окне? Окно то открыто.


  • 0

#7 MarkAvreliy

MarkAvreliy

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Аврелий Марк

Отправлено 20 апреля 2017 - 11:11

Здравствуйте, друзья.

 

Если будет кому интересно, то проблему решил таким способом:

1)

WebDriver driver; 
DesiredCapabilities ieCaps = DesiredCapabilities.internetExplorer();
ieCaps.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
ieCaps.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, "http://www.vk.com");
driver = new InternetExplorerDriver(ieCaps);

2)

Убрал ВСЕ протекшены в настройках ИЕ (что делал и до этой темы) + полностью отключил мануально зону рестрикнутых сайтов.

+ добавил мануально разрешения на ВСЕ скрипты по отношению к ИЕ.

 

ни с одним другим браузером подобных проблем нет. Конечно ещё Максфон остается, но кому он нужен.

 

Всем спасибо.

Успешного вам времени!


  • 0


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

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