从Selenium Client获取剪贴板中的数据

问题描述

当您单击按钮(Jscript)时,我想访问一些复制到网站剪贴板上的数据 我使用Remotewebdriver(ChromeDriver)来控制测试用例,但找不到如何访问此信息。

有人知道吗?

如果可以使用c#,但也可以使用Java解决方案。

Thx

解决方法

您可以使用https://developer.mozilla.org/en-US/docs/Web/API/Clipboard_API,但是如文档中所述,您需要从浏览器中授予权限以从中读取值。获得许可后,只需从硒页面上执行js脚本并获取该值即可。

,

所以我不知道该怎么做,所以我的方法是使用Jquery渲染文本区域,然后将CTRL + V文本放入该框中,然后再使用webdriver获得值。不漂亮,但是可以用

var javaScript = "$( \".d-modal-footer\").html('<div><textarea id=errormessagecopy maxlength=\"5000\" cols=\"80\" rows=\"40\"></textarea></div>');";

WebDriver.ExecuteJavaScript(javaScript);
var errormessagecopy = WebDriver.FindElement(By.Id("errormessagecopy"));

new Actions(WebDriver).MoveToElement(errormessagecopy).Click().KeyDown(OpenQA.Selenium.Keys.Control).SendKeys("v").KeyUp(OpenQA.Selenium.Keys.Control).Perform();

var errorText = WebDriver.ExecuteJavaScript<string>("return $(\"#errormessagecopy\").val();");