2012-01-07 9 views
8

Chciałbym symulować użytkownika naciskającego shift-enter w obszarze tekstowym. Oto kod pracuję z:Jak wysłać akordy kluczowe do obszaru tekstowego za pomocą Selenium?

var driver = new FirefoxDriver(); 
driver.Navigate().GoToUrl("http://pagewithtextarea"); 
var textarea = driver.FindElement(By.Id("myTextArea")); 
//Send text 
textarea.SendKeys("hello world!"); 

Jeśli chcę symulować naciśnięcie klawisza enter mogę powiedzieć

textarea.SendKeys(Keys.Enter); 

Jak mogłem symulować naciśnięcie shift i wprowadzić w tym samym czasie?

Odpowiedz

20

Prostsze, niż się spodziewałem. Od SendKeys pobiera ciąg i statyczne stałe na klawiszach są wszystkie ciągi mogą po prostu być łączone ze sobą w ten sposób:

textarea.SendKeys(Keys.Shift + Keys.Enter); 
+4

Cieszę się, że to zadziałało. Niestety nie działa to dla mnie w IE9 lub Chrome: '.SendKeys (Keys.Control +" A ");' Wszelkie sugestie? –

+0

Miałem ograniczony sukces w uzyskiwaniu Selenium do pracy w IE. Przyjrzałbym się ustawieniom bezpieczeństwa przeglądarki, aby sprawdzić, czy istnieje coś, co uniemożliwia Selenium pełne sterowanie przeglądarką. –

+3

@ BrettVeenstra, znalazłeś rozwiązanie dla Chrome? Mam ten sam problem ... – yashaka

-3

W Javie Mamy chord metoda, metoda ta wysyła sekwencję klawiszy razem:

textArea.SendKeys(Keys.chord(Keys.Control , "a")); 

lub

textArea.SendKeys(Keys.chord (Keys.Shift,Keys.Enter)); 
0

Jeśli istnieje coś, co można zrobić w kółko, może warto czyni metodę rozszerzenia dla niego. Zrobiłem to, ponieważ .Clear() nie działa z naszej aplikacji internetowej z jakiegoś powodu. Zamiast zawsze wysyłając CTRL+A i \b, po prostu przedłużyć go w ten sposób:

public static class ExtensionMethods 
{ 
    public static void Blank(this IWebElement _el) 
    { 
     _el.SendKeys(Keys.Control + "a"); 
     _el.SendKeys("\b"); 
    } 
} 

Potem wystarczy zadzwonić dynEl.Blank(); i działa świetnie.

+1

Dzięki za ten pomysł. Zmodyfikowałem go, aby zwrócić element, aby połączyć łańcuchy poleceń razem. [element] .ClearField(). SendKeys ("Tytuł") – camainc

Powiązane problemy