如何使用Selenium c#将剪贴板中的网址粘贴到Chrome中的地址栏?



>我有一个警告框,在文本输入区域中显示一个URL,并将链接复制到剪贴板。我希望能够打开一个新选项卡,并将URL粘贴到地址栏中。

我试过:

var generatedLink = System.Windows.Forms.Clipboard.GetText();
_chromeDriver.Navigate().GoToUrl(generatedLink);

生成的链接返回 ">

我也试过:

尝试 1:

((IJavaScriptExecutor)_chromeDriver).ExecuteScript("window.open();");
List<String> tabs = new List<String>(_chromeDriver.WindowHandles);
_chromeDriver.SwitchTo().Window(tabs[1]);           
_chromeDriver.FindElement(By.XPath("//body")).SendKeys(Keys.Control + "l");
_chromeDriver.FindElement(By.XPath("//body")).SendKeys(Keys.Control + "v");

发送键(Keys.Control + "l"( 没有像它应该的那样选择地址栏

SendKeys(Keys.Control + "v"( 不粘贴文本

我知道文本是复制的,因为当我调试测试时,我可以毫无问题地将复制的文本粘贴到记事本中。

以下是进行复制的位置:

const url = window.location.host + urlPattern.stringify(newUrlParameters) + queryString; 
(navigator as any).clipboard.writeText(url) 
.then(() => window.prompt('Link copied to clipboard!', url)) 
.catch(() => window.prompt('Copy to clipboard: Ctrl+C, Enter', url)); 

若要打开包含从剪贴板复制的URL的新选项卡,您需要引用命名空间System.Windows.Forms,您可以使用以下解决方案:

using System.Windows.Forms;
// other code
string myURL = Clipboard.GetText()
((IJavaScriptExecutor)_chromeDriver).ExecuteScript("window.open('" + myURL +"');");

如果要将URL设置为地址栏,以下是解决方案:

((IJavaScriptExecutor)Driver).ExecuteScript("navigator.clipboard.readText().then(text => window.location.replace(text));");

或使用文本复制包:

Driver.Navigate().GoToUrl(new TextCopy.Clipboard().GetText());

相关内容

  • 没有找到相关文章

最新更新