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

phunq

Регистрация: 04 мая 2011
Offline Активность: 10 ноя 2011 11:14
-----

Мои сообщения

В теме: как сделать multy select

13 сентября 2011 - 10:45

да похоже что самописный движок - единственно пока что могу показать это тот скриншот...

В теме: как сделать multy select

09 сентября 2011 - 11:49

ну для второго код приводил Алексей

Select mySelect = new Select(driver.findElement(By.name("my-select")));
                mySelect.selectByValue("val1");
                mySelect.selectByValue("val2");

этот код навел меня на мысль на использование первой версии или по крайней мере вызовов команд первой из второй

selenium.addSelection("rules[0][verbs][]", "label=comment");
 Thread.sleep(1000);
 selenium.controlKeyDown();
 selenium.addSelection("rules[0][verbs][]", "label=deposit");
 Thread.sleep(1000);
 selenium.controlKeyUp();

но проблема в то что использовать класс Select можно только при наличии тега <select>
иначе экземпляр класса select просто не создать

в моем же случае нет тега select есть только

div[
table[
tr[td[span]]]
tr[td[span]]]
tr[td[span]]]
tr[td[span]]]
tr[td[span]]]
]

здесь нет ни аттрибута value, ни <select>, чтобы можно было выбирать по хотя бы индексу
селениум не видит здесь списка, поэтому я и пытался имитировать работу с ctrl+click shift+click

приложил картинку с кодом страницы

В теме: как сделать multy select

08 сентября 2011 - 11:27

ну Ваш код использет селениум первой версии, возможно все так

я использовал вторую версию
и там для фаерфокса явно не реализованы keyup, keydown

в принципе можно испольтзовать вызовы первой версии
а что означают здесь параметры метода addSelection ?

В теме: как сделать multy select

06 сентября 2011 - 08:55

дополнительные исследование показали что код

                Actions builder = new Actions(wd);      
                   builder.keyDown(Keys.CONTROL)                   
               .click(we1)
               .click(we2)
               .keyUp(Keys.CONTROL);
                 Action selectMultiple = builder.build();
                 selectMultiple.perform();


в IE8 не скидывает эксепшена - но и к эффекту мультиселекта не приводит

В теме: как сделать multy select

06 сентября 2011 - 07:35

как выясняется оно падает на такой операции

builder.keyDown(Keys.CONTROL).build().perform();

с такой ошибкой

Exception in thread "main" org.openqa.selenium.UnsupportedCommandException: Unrecognized command: POST /session/f1ddca54-3c28-4003-9304-f0739de604d7/modifier
Build info: version: '2.4.0', revision: '13337', time: '2011-08-12 09:58:05'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_26'
Driver info: driver.version: RemoteWebDriver
	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:131)
	at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:105)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:407)
	at org.openqa.selenium.remote.RemoteWebDriver$RemoteKeyboard.pressKey(RemoteWebDriver.java:642)
	at org.openqa.selenium.interactions.KeyDownAction.perform(KeyDownAction.java:40)
	at org.openqa.selenium.interactions.CompositeAction.perform(CompositeAction.java:31)