【问题标题】:How to press Ctrl+V in Selenium WebDriver如何在 Selenium WebDriver 中按 Ctrl+V
【发布时间】:2013-08-19 20:51:22
【问题描述】:

在我的一项自动化测试中,我需要在文本框中按 Ctrl+V 来粘贴文本。但我不能那样做。我正在将 Selenium WebDriver 用于 .net v. 2.35.0.0。 这是我的代码,它不起作用。它按 Ctrl,然后按 V,但文本不会粘贴到框中:

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();

更新: 操作系统:Windows Server 2012,x64 浏览器:IE10

【问题讨论】:

  • 您的代码对我来说很好用。你确定你的剪贴板里有东西吗?
  • 是的,我在运行此代码之前选择了文本。
  • 你用过什么操作系统/浏览器?

标签: selenium selenium-webdriver keypress


【解决方案1】:

以下是我的建议:

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();

【讨论】:

  • 成功了。谢谢!奇怪的是:我在发布这个问题之前尝试过这个,它对我不起作用:) 也许我错过了一些东西,因为我检查了很多不同的方法。无论如何,谢谢!
  • @Vitaliy:可能是因为你使用了大写的“V”。由于某种原因,大写字母不起作用。
  • 我认为,Ctrl +大写'V'不起作用,因为'V' = Shift + 'v'在webdriver中,总顺序是:Ctrl + Shift + v
【解决方案2】:

你可以试试这个简单的方法

driver.findElement(By.xpath(FileUpDownLoad._SOURCE_NAME)).sendKeys(Keys.CONTROL + "v");

【讨论】:

    【解决方案3】:

    接受的答案对我不起作用,对我有用的是:

    new Actions(driver).KeyDown(OpenQA.Selenium.Keys.Control).SendKeys("v").KeyUp(OpenQA.Selenium.Keys.Control).Perform();
    

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 2017-01-13
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2015-12-14
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多