猿问

如何使用 Selenium c# 将 url 从剪贴板粘贴到 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");

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


蓝山帝景
浏览 444回答 2
2回答

当年话下

如果要将url设置为地址栏,解决方法如下:((IJavaScriptExecutor)Driver).ExecuteScript("navigator.clipboard.readText().then(text&nbsp;=>&nbsp;window.location.replace(text));");或使用TextCopy 包:Driver.Navigate().GoToUrl(new&nbsp;TextCopy.Clipboard().GetText());
随时随地看视频慕课网APP
我要回答