selenium maven dependencies

проэкт на мавен

если добавить в build pass джарник selenium-server.standalone, тесты проходят, но нужно чтобы эти все депенденси тянул мавен!

в роm.xml прописал

<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-java</artifactId>
		<version>2.39.0</version>
		<scope>test</scope>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-chrome-driver</artifactId>
		<version>2.39.0</version>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-server</artifactId>
		<version>2.39.0</version>
	</dependency>
	<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-firefox-driver</artifactId>
		<version>2.39.0</version>
	</dependency>
	<dependency>
		<groupId>org.apache.httpcomponents</groupId>
		<artifactId>httpcore</artifactId>
		<version>4.2.3</version>
	</dependency>

когда проганяю тесты в стек трейсе ошибки

2014-01-17 11:10:37,371 [ INFO] Allocating resources
Opening firefox
P:\git\ecm-service-test-lsv
2014-01-17 11:10:49,936 [ERROR] Assertion failed - Uncaught exception during testcase: org.openqa.selenium.NoSuchElementException: Unable to locate element: {&quot;method&quot;:&quot;css selector&quot;,&quot;selector&quot;:&quot;.ebBtn.ebBtn_color_green&quot;}
Command duration or timeout: 5.07 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'ESEKAVW764BA610', ip: '136.225.204.214', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_45'
Session ID: 489c41ad-fc61-47bf-a960-ba23fc4bf2d9
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, browserConnectionEnabled=true, webStorageEnabled=true, nativeEvents=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=26.0}]
2014-01-17 11:10:49,938 [ERROR] Stack trace
org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":".ebBtn.ebBtn_color_green"}
Command duration or timeout: 5.07 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'ESEKAVW764BA610', ip: '136.225.204.214', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_45'
Session ID: 489c41ad-fc61-47bf-a960-ba23fc4bf2d9
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true, browserName=firefox, handlesAlerts=true, browserConnectionEnabled=true, webStorageEnabled=true, nativeEvents=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=26.0}]
	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:193)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307)
	at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:396)
	at org.openqa.selenium.By$ByCssSelector.findElement(By.java:431)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
	at com.sun.proxy.$Proxy26.findElement(Unknown Source)
	at org.openqa.selenium.support.events.EventFiringWebDriver.findElement(EventFiringWebDriver.java:184)
	at org.openqa.selenium.support.pagefactory.DefaultElementLocator.findElement(DefaultElementLocator.java:59)
	at org.openqa.selenium.support.pagefactory.internal.LocatingElementHandler.invoke(LocatingElementHandler.java:34)
	at com.sun.proxy.$Proxy28.click(Unknown Source)
	at com.jcat.ecs.tests.ecm.gui.pages.UsersPage.createTenantUser(UsersPage.java:79)
	at com.jcat.ecs.tests.ecm.gui.guitenantadmin.TestTenadmin001.testTenAdmin2(TestTenadmin001.java:85)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
	at org.testng.TestRunner.privateRun(TestRunner.java:767)
	at org.testng.TestRunner.run(TestRunner.java:617)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
	at org.testng.SuiteRunner.run(SuiteRunner.java:240)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
	at org.testng.TestNG.run(TestNG.java:1057)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
	at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to locate element: {"method":"css selector","selector":".ebBtn.ebBtn_color_green"}
Build info: version: '2.39.0', revision: '14fa800511cc5d66d426e08b0b2ab926c7ed7398', time: '2013-12-16 13:18:38'
System info: host: 'ESEKAVW764BA610', ip: '136.225.204.214', os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.7.0_45'
Driver info: driver.version: unknown
	at <anonymous class>.FirefoxDriver.prototype.findElementInternal_(file:///P:/Users/XMAZMAK/AppData/Local/Temp/anonymous4801333862591814647webdriver-profile/extensions/fxdriver@googlecode.com/components/driver_component.js:8860)
	at <anonymous class>.fxdriver.Timer.prototype.setTimeout/<.notify(file:///P:/Users/XMAZMAK/AppData/Local/Temp/anonymous4801333862591814647webdriver-profile/extensions/fxdriver@googlecode.com/components/driver_component.js:396)
Closing browser

===============================================
ECM guiTenantAdmin_MF Tests
Total tests run: 1, Failures: 1, Skips: 0

хотя элемент с локатором

"method":"css selector","selector":".ebBtn.ebBtn_color_green"

есть на странице

если добавить в build pass джарник selenium-server.standalone, тесты проходят, значит в роm.xml не все прописал

скажите куда копать? кто встречался

странно, попробуйте переопределить локатор для элемента, определите его по xpath например

  1. Версии selenium одинаковые в Build_Path и в мавен?
  2. Версии Firefox одинаковые?
  3. Если дело не в версиях, то значит просто обычные гонки, надо подождать появления элемента

Кстати, вот этой зависимости достаточно (другие можно не подключать):

<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-java</artifactId>
		<version>2.39.0</version>
		<scope>test</scope>
</dependency>
1 лайк

нет, проблема не в локаторах!

добавил еще депенденси

<dependency>
		<groupId>org.seleniumhq.selenium</groupId>
		<artifactId>selenium-server-standalone</artifactId>
		<version>2.35.0</version>
	</dependency>

все равно тот же результат!

Если бы у вас были проблема с отсутствием библиотек в зависимостях (как вы подозреваете неправильно сформированный pom.xml), то ваш код просто не скомпилировался и тесты вообще бы не запустились.
То, что при добавлении selenium-server.standalone в build path (кстати, а как вы это сделаете при запуске тестов из maven?) не проявляются проблемы с нахождением элемента - просто совпадение, такой себе плацебо-эффект.
Попробуйте ответить на вопросы, который задал @joemast - думаю, что отгадка где-то там.

1 лайк

не нужно “пересаживаться” на последнюю версию, я обычно беру 100% рабочие тесты и на них проверяю новую версию селениума - если все работает - только тогда обновляюсь
поставил версию 2.37 - вопрос решен