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

时间:2018-06-12 14:23:44

标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver

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

我试过了:

invec <- c(
  'A, C, D',
  'P, O, E',
  'W, E, W',
  'S, B, W')

out <- rep(NA, length(invec))
for(x in c('A', 'B')) out[grep(x, invec)] <- x
out
#[1] "A" NA  NA  "B"

generatedLink返回&#34;&#34;

我也尝试过:

尝试1:

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

SendKeys(Keys.Control +&#34; l&#34;)没有像它应该选择地址栏

SendKeys(Keys.Control +&#34; v&#34;)不会粘贴文字

我知道文本被复制了,因为当我调试测试时,我可以将复制的文本粘贴到记事本中而不会出现任何问题。

以下是复制的位置:

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

2 个答案:

答案 0 :(得分:0)

如果要将网址设置为地址栏,则可以使用以下解决方法:

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

或使用TextCopy package

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

答案 1 :(得分:-1)

要从剪贴板复制 URL 打开新标签页,您需要引用名称空间 System.Windows.Forms 您可以使用以下解决方案:

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