selenium.click(button) doesnt work in Opera
#1
Отправлено 02 сентября 2011 - 12:47
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
на деле же ничего не нажимает :(
это лечится?
#2
Отправлено 02 сентября 2011 - 14:48
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#3
Отправлено 05 сентября 2011 - 08:54
Нет, не лечится. В новых версиях оперы не работает. И, подозреваю, уже никогда не будет. Переходите на webdriver (aka selenium 2) -- там с новыми версиями оперы всё отлично работает.
Спасибо, буду изучать webdriver :)
#4
Отправлено 12 сентября 2011 - 11:09
- Не удалось нагуглить пример подключения OperaDriver под С#
- Также не нашла аналог selenium.getLocation() для webdriver.
может подскажете?
премного благодарна!
#5
Отправлено 12 сентября 2011 - 14:04
driver.getCurrentUrl()
#6
Отправлено 13 сентября 2011 - 06:11
Второй вопрос:
driver.getCurrentUrl()
Здравствуйте, Demetri. Вы мне очень помогли год назад, когда я начинала, я вас помню и люблю

спасибо, за подсказку, но что-то не понимает 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();
А ещё меня очень смущает в вебдрайвере его работа - он переключает весь фокус на себя, и становится невозможно работать с ним параллельно на одном компьютере (например, если я что-то пишу, а тесты в это время заполняют форму, то фокус переводится в эту форму и мой флуд смешивается с данными автотестов..)
Прикрепленные файлы
#7
Отправлено 13 сентября 2011 - 06:20
#8
Отправлено 13 сентября 2011 - 07:12
Эмм... странно. Но тогда должна помочь такая конструкция (пример на Java, но его не сложно переписать по C#):Здравствуйте, Demetri. Вы мне очень помогли год назад, когда я начинала, я вас помню и люблю
![]()
спасибо, за подсказку, но что-то не понимает C# этого метода driver.getCurrentUrl(); ни даже вот этого: driver.GetCurrentUrl();
скринпруф приаттачила..
String javascript = "return window.location.href;"; String url = (String) ((JavascriptExecutor)driver).executeScript(javascript);
RemoteWebDriver Server запущен? :)...
Вот так пытаюсь подключить Оперу: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
http://code.google.c...WebDriverServer
http://seleniumhq.org/docs/04_webdriver_advanced.html#remotewebdriver...
Назрел вопрос номер ТРИ:
как запускать вебдрайвер удалённо?
Селениум на 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();
WebDriver driver = new RemoteWebDriver( new URL("http://172.16.38.128:4444/wd/hub"), DesiredCapabilities.Opera());
ОС какая? С Windows7 такой проблемы нет...
А ещё меня очень смущает в вебдрайвере его работа - он переключает весь фокус на себя, и становится невозможно работать с ним параллельно на одном компьютере (например, если я что-то пишу, а тесты в это время заполняют форму, то фокус переводится в эту форму и мой флуд смешивается с данными автотестов..)
#9
Отправлено 13 сентября 2011 - 07:57
Эмм... странно. Но тогда должна помочь такая конструкция (пример на Java, но его не сложно переписать по C#):
String javascript = "return window.location.href;"; String url = (String) ((JavascriptExecutor)driver).executeScript(javascript);
Это вам не сложно, а я блондинко

JavascriptExecutor - не распознаётся C#
...
RemoteWebDriver Server запущен? :)
http://code.google.c...WebDriverServer
Ого, а я и не знала, что селениум-сервер нужен для работы WebDriver. Или Opera исключение из правил?
тем не менее запуск selenium сервера помог, опера пытается запуститься, но выдаёт startup error. Скриншот приаттачила.
...
http://seleniumhq.or...remotewebdriverWebDriver 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 не поверите ;)
Прикрепленные файлы
#10
Отправлено 13 сентября 2011 - 14:09
driver.Url
- Также не нашла аналог selenium.getLocation() для webdriver.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#11
Отправлено 13 сентября 2011 - 14:11
Сервер нужен только если используется RemoteWebDriver. Для других драйверов -- не нужен.Ого, а я и не знала, что селениум-сервер нужен для работы WebDriver. Или Opera исключение из правил?
тем не менее запуск selenium сервера помог, опера пытается запуститься, но выдаёт startup error. Скриншот приаттачила.
Для того, чтобы запустилась опера, нужно либо запускать с правами администратора, либо разрешить запись в каталог , где установлена опера.
Это баг, разработчики про него знают, но пока не пофиксили.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных