Por lo tanto, en mis pruebas de regresión de selenio, he intentado hacer doble clic en un calendario para crear una nueva cita. He intentado usar el doubleClick(); método dentro de la biblioteca de interacciones de usuario avanzado, pero hay un problema; los dos clics no son lo suficientemente rápidos/lo suficientemente cerca como para disparar un doble clic real! ¿Alguien ha encontrado una manera de lidiar con esto en sus pruebas?Selenium 2.0 WebDriver Advcanced Interactions Ayuda de DoubleClick (C#)
Respuesta
¡Este código funciona para mí!
Actions action = new Actions(driver);
action.doubleClick(myElemment);
action.perform();
Lo he intentado, pero el método Actions doubleClick() no activa ambos clics lo suficientemente rápido como para registrarse como un doble clic por algún motivo. – spacebed
Bueno, actualicé a la compilación actual de Selenium, y (sin cambios en el código)) Dispara lo suficientemente rápido ahora jaja. Sin embargo, marcaré esto como la solución, ya que creo que el controlador de Actions es el camino más simple/más efectivo. – spacebed
¿Ha intentado capturar IWebElement y luego hacer clic dos veces?
IWebElement element = driver.FindElement(By.Id("yourID"));
element.Click();
element.Click();
No sé si esto le daría la funcionalidad desird o no, pero sé que cuando yo haga un evento de clic como la de arriba se ejecuta tan cerca como un doble clic de un usuario real.
La otra opción es hacer referencia a la ThoughtWorks.Selenium.Core
, sin embargo, el único inconveniente de esto es que no estoy seguro de que juega bien con la corriente IWebDriver
creo que necesita su propia instancia de la IWebDriver
.
Lamentablemente esto no funciona. Intenté esto antes de AdvancedUserInteractions, pero ninguno parece realizar un doble clic. – spacebed
Aquí está el equivalente de Java. Este código abrirá ciegamente el primer evento. Podría agregar algo de lógica para abrir un evento específico, etc. ¡Este código funciona! (probado con 2.12)
List<WebElement> events = driver.findElements(By.cssSelector("div.dv-appointment"));
for(WebElement event:events){
WebElement body = event.findElement(By.cssSelector("div.body"));
if(!body.getText().isEmpty()) //or open a known event
{
System.out.println(body.getText()); //open the first event
Actions builder = new Actions(driver);
Action doubleClick = builder.doubleClick(event)
.build();
doubleClick.perform();
break;
}
}
No se olvide el "uso"
using OpenQA.Selenium;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Interactions.Internal;
using OpenQA.Selenium.Support.UI;
//create Actions object
Actions builder = new Actions(driver);
//create a chain of actions
builder.DoubleClick().Build().Perform();
http://selenium-interview-questions.blogspot.ru/2014/03/how-to-double-click-on-web-element.html
yo también tenía el problema en el caso de DoubleClick de selenio funciona en Firefox pero no tiene efecto en Chrome. La actualización a Selenium no ayudó; Ya tengo la última versión. (Mi entorno es Ubuntu 14.04, Python 2.7.6, Selenium 2.44.0, Firefox 35.0, Chrome 40.0.2214.91.)
No estoy seguro de por qué la respuesta de CBRRacer fue downvoted. Trabajé exitosamente alrededor del problema al usar dos eventos de clic. Esto funciona tanto en Firefox como en Chrome. Hay dos formas de hacerlo, y ambos funcionaron para mí.
La primera manera:
elem = driver.find_element_by_css_selector('#myElement')
elem.click()
elem.click()
La segunda manera:
elem = driver.find_element_by_css_selector('#myElement')
actions = webdriver.ActionChains(driver)
actions.click(elem).click(elem).perform()
me gusta bastante el enfoque utilizado aquí, sobre todo en cola las acciones en primer lugar, a continuación, llevar a cabo, ya que permite la aplicación repetida de la Actionchain.
A partir del ejemplo de documentación vinculada:
menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
actions = ActionChains(driver)
actions.move_to_element(menu)
actions.click(hidden_submenu)
actions.perform()
- 1. Una solución para Selenium 2.0 WebDriver & the: hover pseudoclass
- 2. Selenium Webdriver configuración remota
- 3. ¿Cómo configuro una opción como seleccionada usando el cliente Selenium WebDriver (selenium 2.0) en ruby
- 4. Ejecute JavaScript utilizando Selenium WebDriver en C#
- 5. Selenium C# Webdriver FindElements (By.LinkText) RegEx?
- 6. Amplíe Selenium WebDriver WebElement?
- 7. elemento selectivo de Selenium webdriver
- 8. Selenium WebDriver objeto de página
- 9. Selenium 2 (WebDriver) o Geb?
- 10. Prueba autocompletar con Selenium webdriver
- 11. Selenium WebDriver Find nth element
- 12. C# Selenium WebDriver FireFox Profile - usando proxy con Autenticación
- 13. Alerta de manejo en Selenium WebDriver (Selenium 2)
- 14. Selenium Webdriver: especifique filepath para Firefox exe
- 15. setSpeed en Selenium WebDriver usando Ruby
- 16. Patrón de fábrica para Selenium webdriver
- 17. Lectura de texto usando selenium webdriver (xpath)
- 18. Cómo depurar acciones de Selenium WebDriver?
- 19. Selenium WebDriver + incompatibilidad de Firefox 7.0.1
- 20. Cómo deshabilitar Flash en selenium remote webdriver
- 21. Usar SelectByText (parcial) con C# Selenium WebDriver no parece funcionar
- 22. Selenium C# Webdriver Cómo detectar si el elemento está visible
- 23. NUnit error al ejecutar mi C# Selenium WebDriver código
- 24. ¿Cómo ejecuto Firebug en Selenium WebDriver (Selenium 2)?
- 25. ¿Cómo enviar cookies con selenium webdriver?
- 26. Desplazamiento con Selenium WebDriver con Java
- 27. Selenium WebDriver acceder a un elemento secundario
- 28. Selenium Webdriver esperar al elemento clic?
- 29. Python Selenium WebDriver drag-and-drop
- 30. Maximice WebDriver (Selenium 2) en Python
También, el calendario que estoy usando funciones como éste: [link] (http: //google.latest.gwt- web-calendar.appspot.com) – spacebed
Desafortunadamente, el enlace no permite hacer doble clic en un calendario vacío para crear una nueva cita. Sin embargo, pude hacer doble clic en un calendario existente y abrirlo con éxito. Usé Actions API aunque en Java. No estoy seguro de si eso es algo que estás buscando.Puedo publicar el código si está interesado – nilesh
Tiene razón, pero incluso para simular el doble clic en una ya registrada, incluso no funciona para mi aplicación real. Sin embargo, estoy interesado en el código, ya que puede ayudarme a calcular el equivalente de C#. – spacebed