2013-08-19 7 views
1

В одном из моих автоматических тестов мне нужно нажать Ctrl + V в текстовом поле для вставки текста в него. Но я не могу этого сделать. Я использую Selenium WebDriver для .net v. 2.35.0.0. Вот мой код, он не работает. Он нажимает Ctrl, а затем V, но текст не получает вставили в коробке:Как нажимать Ctrl + V в Selenium WebDriver

IWebDriver webDriver = new InternetExplorerDriver(); 
      webDriver.Navigate().GoToUrl(@"C:\Users\us\Documents\Visual Studio 2012\Projects\SeleniumTests\SeleniumTests\test.html"); 
      var el = webDriver.FindElement(By.XPath(".//*[@id='fld']")); 
      el.Click(); 
      Actions builder = new Actions(webDriver); 
      builder.KeyDown(el, Keys.LeftControl).Perform(); 
      builder.SendKeys(el, "v").Perform(); 
      builder.KeyUp(el, Keys.LeftControl).Perform(); 

      webDriver.Quit(); 

Update: ОС: Windows Server 2012, x6 Browser: IE10

+1

Ваш код отлично подходит для меня. Вы уверены, что в вашем буфере обмена есть что-то? –

+0

Да, я выбрал текст перед запуском этого кода. – vmg

+0

Какие ОС/браузер вы использовали? – vmg

ответ

4

Вот что я предложит:

IWebDriver webDriver = new InternetExplorerDriver(); 
      webDriver.Navigate().GoToUrl(@"C:\Users\us\Documents\Visual Studio 2012\Projects\SeleniumTests\SeleniumTests\test.html"); 
      var el = webDriver.FindElement(By.XPath(".//*[@id='fld']")); 
      el.Click(); 
      el.SendKeys(Keys.Control + "v"); 

      webDriver.Quit(); 
+0

Это сработало. благодаря! Странно: я попробовал это, прежде чем публиковать этот вопрос, и это не сработало для меня :) Возможно, я что-то пропустил, потому что я проверил множество разных подходов. В любом случае, благодарю Вас! – vmg

+0

Добро пожаловать, рад, что это сработало. – Richard

+0

@Vitaliy: Возможно, это потому, что вы использовали столицу «V». По какой-то причине заглавные буквы не работают. –

0

Вы можете попробовать этот простой способ

driver.findElement(By.xpath(FileUpDownLoad._SOURCE_NAME)).sendKeys(Keys.CONTROL + "v"); 
Смежные вопросы