Comment keyPress + cliquez avec le sélénium
J'ai un problème avec mon Sélénium code de ne pas l'effectuer correctement la pression de touche + clic.
Le test doit ouvrir la jqueryui.com lien et sélectionnez les 2 premiers li éléments sur la page.
Je suis en utilisant le Sélénium 2.23 et Firefox 10. Mon code est comme suit (j'ai trie de 4 façons différentes de le faire fonctionner, mais aucun n'est effectué):
FirefoxProfile profil = new FirefoxProfile();
profil.setEnableNativeEvents(true);
WebDriver navigateur = new FirefoxDriver(profil);
le navigateur.get("http://jqueryui.com/demos/selectable/");Éléments de la liste = navigateur.findElements(Par.cssSelector("ol#sélectionnable li"));
Actions a = new Actions(browser); a.keyDown(Keys.CONTROL) .moveToElement(elements.get(0)) .click() .moveToElement(elements.get(1)) .click() .keyUp(Keys.CONTROL) .build() .perform(); Keyboard keyboard = ((HasInputDevices) browser).getKeyboard(); keyboard.pressKey(Keys.CONTROL); List<WebElement> selectOptions = browser.findElements(By.cssSelector("ol#selectable li")); selectOptions.get(1).click(); selectOptions.get(3).click(); keyboard.releaseKey(Keys.CONTROL);
Actions builder = new Actions(browser);
builder.keyDown(elements.get(0), Keys.CONTROL)
.click(elements.get(0))
.click(elements.get(1))
.keyUp(Keys.CONTROL);
Action selectMultiple = builder.build();
selectMultiple.perform();
Robot robot = new Robot();
robot.delay(1000);
robot.keyPress(KeyEvent.CTRL_MASK);
elements.get(0).click();
elements.get(1).click();
robot.keyRelease(KeyEvent.CTRL_MASK);
browser.quit();
Quelqu'un peut m'aider avec quelques autres suggestions?
OriginalL'auteur user989379 | 2012-07-10
Vous devez vous connecter pour publier un commentaire.
Je n'ai vraiment aucune idée pourquoi aucun de vos tentatives de travail (en particulier le premier). La clé constantes sont un gâchis.
De toute façon, j'ai été en mesure de faire ce travail (sous Windows XP):
OriginalL'auteur Petr Janeček
C'est un bug en Sélénium, affectant shift/contrôle/alt combiné avec clique sur Firefox pour Windows. Star le bug, et peut-être qu'ils vont le réparer.
OriginalL'auteur Oliver Bock
Je pense que c'est pas un bug.
Essayez d'utiliser ce (C#):
ou pour vous(Java):
Seulement au lieu de
utilisation
Il fonctionne,
OriginalL'auteur Marcin Zmij