2010-10-20 6 views
2

J'utilise C# avec Selenium 2.0/Webdriver et j'essaie de simuler un double clic sur une ligne de table qui ouvre un nouveau navigateur fenêtre.Selenium 2/Webdriver - comment double-cliquer sur une ligne de table (qui ouvre une nouvelle fenêtre)

J'ai deux problèmes:

  1. Après avoir localisé la ligne de table qui a un nom de classe unique, (utilisation findelement(By.classname("..."))) appliquant la méthode de clic (ou sélectionner/soumettre) ne réalise aucune action et se plaint de ne pas être en mesure d'effectuer cette action de genre sur l'élément en question.

  2. Comment effectuer vous un double clic dans sélénium 2.0/WebDriver?

Répondre

7
  1. Vous devez cliquer sur la cellule de table (<td>) élément

  2. Double-cliquez n'a pas encore été mis en œuvre WebDriver. Voir Issue #244 pour le statut. Aussi les commentaires à ce problème contient un JavaScript qui peut être utilisé pour le double-clic dans Firefox.

Pour IE, vous devrez exécuter les éléments suivants:

(IJavaScriptExecutor)driver).executeScript("arguments[0].fireEvent('ondblclick');", cell); 

Pour Firefox et Chrome:

(IJavaScriptExecutor)driver).executeScript("var evt = document.createEvent('MouseEvents');" + 
     "evt.initMouseEvent('dblclick',true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0,null);" + 
     "arguments[0].dispatchEvent(evt);", cell); 

où le cell est l'élément Web sur lequel vous souhaitez exécuter le script.

+1

+1 - Encore une excellente alternative lorsque le DoubleClick prêt à l'emploi ne fait pas ce que vous voulez. Travaillé parfait pour moi – JOpuckman

+0

Toujours vrai en 2017 - viser le double clic sur le td était la clé pour le faire fonctionner pour moi. – Ted

4

Pour une double clic, vous pouvez effectuer ce qui suit:

from selenium.webdriver import ActionChains 

action_chains = ActionChains(driver) 
action_chians.double_click(on_element).perform() 

* où, on_element = élément sur lequel vous souhaitez cliquer deux fois *

Je l'ai fait en utilisant python. et cela a fonctionné :)

Questions connexes