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

Фотография

selenium.click(button) doesnt work in Opera


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

#1 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 02 сентября 2011 - 12:47

собственно сабж: в опере не работает команда click:

16:48:00.091 INFO - Command request: click[id=ctl00_MainContent_btnLogin, ] on s
ession beafaf494bbd4aa799abc79721892273
16:48:00.124 INFO - Got result: OK on session beafaf494bbd4aa799abc79721892273


на деле же ничего не нажимает :(

это лечится?
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 02 сентября 2011 - 14:48

Нет, не лечится. В новых версиях оперы не работает. И, подозреваю, уже никогда не будет. Переходите на webdriver (aka selenium 2) -- там с новыми версиями оперы всё отлично работает.
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 05 сентября 2011 - 08:54

Нет, не лечится. В новых версиях оперы не работает. И, подозреваю, уже никогда не будет. Переходите на webdriver (aka selenium 2) -- там с новыми версиями оперы всё отлично работает.


Спасибо, буду изучать webdriver :)
  • 0

#4 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 12 сентября 2011 - 11:09

Немного разобралась.

  • Не удалось нагуглить пример подключения OperaDriver под С#
  • Также не нашла аналог selenium.getLocation() для webdriver.

может подскажете?
премного благодарна!
  • 0

#5 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 12 сентября 2011 - 14:04

Второй вопрос:
driver.getCurrentUrl()

  • 0
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#6 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 13 сентября 2011 - 06:11

Второй вопрос:

driver.getCurrentUrl()


Здравствуйте, Demetri. Вы мне очень помогли год назад, когда я начинала, я вас помню и люблю :kiss2:
спасибо, за подсказку, но что-то не понимает C# этого метода driver.getCurrentUrl(); ни даже вот этого: driver.GetCurrentUrl();
скринпруф приаттачила..

Вопросы к залу:

Вот так пытаюсь подключить Оперу:
DesiredCapabilities capabilities = DesiredCapabilities.Opera();
  capabilities.IsJavaScriptEnabled = true;
 IWebElement driver = new RemoteWebDriver(capabilities);

не запускает, пишет:

Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:4444
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:line 91
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(DriverCommand driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 795


Назрел вопрос номер ТРИ:

как запускать вебдрайвер удалённо?
Селениум на Java я запускала так:

if(Local)  // если локальная машина
			sel = new DefaultSelenium("localhost",4444, "*chrome", constant.url);
			else //если удалённая
			sel = new DefaultSelenium("172.16.38.128",4444, "*chrome", constant.url);
			
			sel.start(); 

А ещё меня очень смущает в вебдрайвере его работа - он переключает весь фокус на себя, и становится невозможно работать с ним параллельно на одном компьютере (например, если я что-то пишу, а тесты в это время заполняют форму, то фокус переводится в эту форму и мой флуд смешивается с данными автотестов..)

Прикрепленные файлы


  • 0

#7 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 13 сентября 2011 - 06:20

Может лучше создать новую тему: "Вопросы новичков о WebDriver"? ;)
  • 0

#8 Demetri

Demetri

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

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 13 сентября 2011 - 07:12

Здравствуйте, Demetri. Вы мне очень помогли год назад, когда я начинала, я вас помню и люблю :kiss2:
спасибо, за подсказку, но что-то не понимает C# этого метода driver.getCurrentUrl(); ни даже вот этого: driver.GetCurrentUrl();
скринпруф приаттачила..

Эмм... странно. Но тогда должна помочь такая конструкция (пример на Java, но его не сложно переписать по C#):
String javascript = "return window.location.href;";
String url = (String) ((JavascriptExecutor)driver).executeScript(javascript);


...
Вот так пытаюсь подключить Оперу:

DesiredCapabilities capabilities = DesiredCapabilities.Opera();
  capabilities.IsJavaScriptEnabled = true;
 IWebElement driver = new RemoteWebDriver(capabilities);

не запускает, пишет:

Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:4444
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\HttpCommandExecutor.cs:line 91
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(DriverCommand driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 795

RemoteWebDriver Server запущен? :)
http://code.google.c...WebDriverServer

...
Назрел вопрос номер ТРИ:

как запускать вебдрайвер удалённо?
Селениум на Java я запускала так:

if(Local)  // если локальная машина
			sel = new DefaultSelenium("localhost",4444, "*chrome", constant.url);
			else //если удалённая
			sel = new DefaultSelenium("172.16.38.128",4444, "*chrome", constant.url);
			
			sel.start(); 

http://seleniumhq.org/docs/04_webdriver_advanced.html#remotewebdriver
WebDriver driver = new RemoteWebDriver(
                                new URL("http://172.16.38.128:4444/wd/hub"), 
                                DesiredCapabilities.Opera());


...
А ещё меня очень смущает в вебдрайвере его работа - он переключает весь фокус на себя, и становится невозможно работать с ним параллельно на одном компьютере (например, если я что-то пишу, а тесты в это время заполняют форму, то фокус переводится в эту форму и мой флуд смешивается с данными автотестов..)

ОС какая? С Windows7 такой проблемы нет
  • 1
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#9 Dary

Dary

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

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:даша

Отправлено 13 сентября 2011 - 07:57

Эмм... странно. Но тогда должна помочь такая конструкция (пример на Java, но его не сложно переписать по C#):

String javascript = "return window.location.href;";
String url = (String) ((JavascriptExecutor)driver).executeScript(javascript);


Это вам не сложно, а я блондинко :blush:
JavascriptExecutor - не распознаётся C#


...

RemoteWebDriver Server запущен? :)
http://code.google.c...WebDriverServer


Ого, а я и не знала, что селениум-сервер нужен для работы WebDriver. Или Opera исключение из правил?
тем не менее запуск selenium сервера помог, опера пытается запуститься, но выдаёт startup error. Скриншот приаттачила.

...

http://seleniumhq.or...remotewebdriver

WebDriver driver = new RemoteWebDriver(
                                new URL("http://172.16.38.128:4444/wd/hub"), 
                                DesiredCapabilities.Opera());


Сделала как вы сказали на Java.
if(Local)
				{
			        WebDriver driver = new FirefoxDriver();
				sel = new WebDriverBackedSelenium(driver, constant.url);
				}
			
			  else
				{
                                  RemoteWebDriver	driverRem = new RemoteWebDriver(
	                              new URL("http://172.16.38.128:4444/wd/hub"), 
	                              DesiredCapabilities.firefox());
				  sel = new WebDriverBackedSelenium(driverRem, constant.url);
				}
			
			sel.start();

Но у меня проблема запустить браузер даже локально (Eclipse+Java)

На строке WebDriver driver = new FirefoxDriver();
запускается FireFox, но без управления Webdriver, ничего дальше сделать не может и падает со словами:
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms
...

ОС какая? С Windows7 такой проблемы нет


Windows7 не поверите ;)

Прикрепленные файлы

  • Прикрепленный файл  opera.png   22,28К   10 Количество загрузок:

  • 0

#10 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 13 сентября 2011 - 14:09

  • Также не нашла аналог selenium.getLocation() для webdriver.

driver.Url
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#11 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 13 сентября 2011 - 14:11

Ого, а я и не знала, что селениум-сервер нужен для работы WebDriver. Или Opera исключение из правил?
тем не менее запуск selenium сервера помог, опера пытается запуститься, но выдаёт startup error. Скриншот приаттачила.

Сервер нужен только если используется RemoteWebDriver. Для других драйверов -- не нужен.

Для того, чтобы запустилась опера, нужно либо запускать с правами администратора, либо разрешить запись в каталог , где установлена опера.
Это баг, разработчики про него знают, но пока не пофиксили.
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


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

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