我想在MACOS的一个文本框中粘贴一些文本。我正在尝试下面的代码。但是Control + v和Command + v都不起作用。我还看到这是已知问题,但不确定是否可以解决。 https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/5919 代码如下。
std::function
我也尝试了上下文单击,这也不起作用。我已验证copyToClipboard函数是否正常运行。请建议我,如果有任何解决方法。
谢谢, 乌芒
答案 0 :(得分:1)
您必须在弹出的窗口中选择粘贴选项,该选项将在右后打开,然后单击粘贴选项。
您可以编写这样的代码。
new Actions(driver ).contextClick(element).sendKeys(Keys.ARROW_DOWN)
.sendKeys(Keys.ARROW_DOWN)
.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).
sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).perform();
对我而言,粘贴选项位于第5个位置。所以我已经写了5次sendKeys(Keys.ARROW_DOWN)。您可以根据自己的要求编写。
我希望这对您有用。
答案 1 :(得分:-1)
正如您提到的 copyToClipboard()
功能正常运行,通过sendKeys()
发送字符序列一样,您可以使用以下解决方案:
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
copyToClipbord(value);
String data = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
element.sendKeys(data);