que tiene que pulsar Ctrl + A teclas usando selenio WebDriver. ¿Hay alguna forma de hacerlo? Revisé las bibliotecas de Selenium y descubrí que el Selenium permite presionar teclas especiales y funcionales solo.pulsación de tecla (Ctrl + A) Selenio WebDriver
Respuesta
Una de las soluciones más (en Java, porque no nos dijo su idioma - pero funciona de la misma manera en todos los idiomas con Keys
clase):
String selectAll = Keys.chord(Keys.CONTROL, "a");
driver.findElement(By.whatever("anything")).sendKeys(selectAll);
Puede usar esto para seleccionar el texto completo en un <input>
, o en la página completa (simplemente encuentre el elemento html
y envíele esto).
EDITAR - OP después declaró que él está usando los enlaces de selenio Rubí
No hay chord()
método en el Keys
class en los enlaces de Ruby. Por lo tanto, según lo sugerido por Hari Reddy, que tendrá que utilizar selenio interacciones de usuario avanzada de la API, consulte ActionBuilder
:
driver.action.key_down(:control)
.send_keys("a")
.key_up(:control)
.perform
El método de acordes es interesante, buena respuesta. –
me perdí para decir por idioma. Uso ruby con selenio – AJJ
@Jai Editado teniendo en cuenta a Ruby. –
Desde Ctrl + A mapas a ASCII valor de código 1 (Ctrl + B a 2, hasta, Ctrl + Z a 26).
Probar:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Internal;
using OpenQA.Selenium.Remote;
namespace SeleniumHqTest
{
class Test
{
IWebDriver driver = new InternetExplorerDriver();
driver.Navigate().GoToUrl("http://localhost");
IWebElement el = driver.FindElement(By.Id("an_element_id"));
char c = '\u0001'; // ASCII code 1 for Ctrl-A
el.SendKeys(Convert.ToString(c));
driver.Quit();
}
}
Para hacer clic Ctrl + Un, puede hacerlo con acciones
Actions action = new Actions();
action.keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0061')).perform();
\ u0061 representa el carácter 'a'
\ u0041 representa el personaje 'A'
Presionar otros personajes hacen referencia la tabla de caracteres Unicode - http://unicode.org/charts/PDF/U0000.pdf
No olvide tener la tecla MAYÚSCULA de la tecla CONTROL o tendrá errores extraños en futuras pruebas. – Chexpir
Usted podría intentar esto:
driver.findElement(By.xpath(id("anything")).sendKeys(Keys.CONTROL + "a");
Gracias, esto me ayudó para mi aplicación python, usando 'driver.send_keys (Keys.TAB)' – ntk4
WebDriver driver = new FirefoxDriver();
Actions action = new Actions(driver);
action.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL).perform();
Este método elimina el extra llamar (String.ValueOf()) para convertir unicode en cadena.
En Selenium para C#, el envío de Keys.Control
simplemente activa el estado de la tecla Control: si está activo, se vuelve inactivo; si está abajo, entonces sube. Para simular presionando Control + A, envíe Keys.Control
dos veces, una vez antes de enviar "a" y luego.
Por ejemplo, si que es un IWebElement de entrada, la siguiente declaración seleccionará todo su contenido:
we.SendKeys(Keys.Control + "a" + Keys.Control);
Gracias. He estado buscando esto. –
Genial. Al utilizar tu comentario, en Rang usando el Rselenium, también obtengo el resultado de Control + A. En este caso, tuve que escribir: 'page $ sendKeysToActiveElement (list (key = 'control'," a ", key = 'control'))' – Jalles10
me encontré con que en Ruby, puede pasar dos argumentos para send_keys
De esta manera:
element.send_keys(:control, 'A')
Funciona para mí:
OpenQA.Selenium.Interactions.Actions action
= new OpenQA.Selenium.Interactions.Actions(browser);
action.KeyDown(OpenQA.Selenium.Keys.Control)
.SendKeys("a").KeyUp(OpenQA.Selenium.Keys.Control).Perform();
Mediante el uso de la clase Robot en Java:
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class Test1
{
public static void main(String[] args) throws Exception
{
WebDriver d1 = new FirefoxDriver();
d1.navigate().to("https://www.youtube.com/");
Thread.sleep(3000);
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
// Perform [Ctrl+A] Operation - it works
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_A);
Thread.sleep(3000);
}
}
rb significa robot? y donde inicializas rb? :) – Csanesz
@Csanesz: Sí, rb es la instancia de Robot –
Puede inicializar Robot como: Robot rb = nuevo Robot(); –
Esto es lo que funcionó para mí usando C# (VS2015) con Selenio:
new Actions(driver).SendKeys(Keys.Control+"A").Perform();
Usted puede agregar tantas teclas como desee utilizando (+) entremedio.
java
clase Robot funcionará de manera muy eficiente que el envío de las claves a través SendKeys selenio. Por favor, intente
Ex:
Robot rb = new Robot();
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_A);
utilizar la clase de robot anterior, es necesario import java.awt.Robot;
'
- 1. javascript - detectar la tecla Ctrl presionada o arriba, evento de pulsación de tecla no desencadena
- 2. manejo de pulsación de tecla
- 3. Android pulsación de tecla larga
- 4. selenio WebDriver ejemplo en Python
- 5. Condición de pulsación de tecla Ctrl en WPF MouseLeftButtonDown controlador de evento
- 6. jquery: pulsación de tecla, ctrl + c (o algún combo como ese)
- 7. Silverlight manejo de pulsación de tecla múltiples combinaciones
- 8. Cambio de la pulsación de tecla
- 9. Cancelar evento de pulsación de tecla
- 10. Detener evento de pulsación de tecla
- 11. Android simular la pulsación de tecla
- 12. Cómo simular la pulsación de la tecla
- 13. TTouchKeyboard: ¿enviar la pulsación de tecla a otro programa?
- 14. ¿Está presionada la tecla 'Ctrl'?
- 15. selenio WebDriver Click() falla con IE9
- 16. Pulse TAB y luego la tecla ENTER en selenio WebDriver con Ruby
- 17. cómo presionar Ctrl + A para seleccionar todo el contenido de una página por Selenio WebDriver utilizando Java
- 18. valor Get del DIV - WebDriver (Selenio)
- 19. Equivalente de isTextPresent en Selenio 1 (Selenio RC) en Selenio 2 (WebDriver)
- 20. Ctrl + - (Ctrl + Hyphen-Minus) como tecla de abreviatura?
- 21. Prueba de la tecla 'Ctrl' en C#
- 22. ¿Se puede distinguir entre la tecla CTRL izquierda y la tecla CTRL derecha usando códigos de tecla en .keypress()?
- 23. manejador de ventana de selenio webdriver C# switchTo failed
- 24. oprimida la tecla CTRL deshabilitado en iTerm.app
- 25. Cómo manejar evento de pulsación de tecla aplicación de consola
- 26. selenio WebDriver - cómo verificar las líneas múltiples de texto
- 27. evento de pulsación de tecla de pestaña en JavaScript?
- 28. Manejo de alertas en Selenium WebDriver (selenio 2) con Java
- 29. Simular evento de pulsación de tecla TAB en Selenium RC
- 30. Introducir evento de pulsación de tecla en JavaScript
Usted puede obtener la respuesta de: http://stackoverflow.com/questions/11578768/press -electro-a-seleccionar-todo-contenido-en-una-página-por-controlador-web –