Selenium Webdriver 尝试使用 'ctrl + t' 打开选项卡 - Javascript

Selenium Webdriver trying to use 'ctrl + t' to open a tab - Javascript

我是 运行 Selenium Webdriver 来测试正在开发的 Web 应用程序(到目前为止我已经创建了很多测试)。我一直在尝试在 Selenium 打开的 window 中打开几个新选项卡,但到目前为止没有成功。我查看了很多不同的解决方案,但其中大部分针对 Java 或 Python,我正在使用 Javascript(我需要使用 Javascript)。

Selenium Webdriver:v.3.1.0 OS:Xubuntu 16.04 浏览器:Chrome 55.0.2883.87 和 Firefox 50.1.0

我尝试过各种解决方案,包括:

我现在所做的是将驱动程序导航到具有 javascript 按键检测的网站,并查看它们是否在 'aaa' 之后被点击:

driver.get("http://unixpapa.com/js/testkey.html");
driver.findElement(By.css("body")).sendKeys("aaa");
driver.findElement(By.css("body")).sendKeys(Key.CONTROL + "t");

这会导航到该页面并在页面检测区域输出:

keydown  keyCode=17        which=17        charCode=0        
keydown  keyCode=84  (T)   which=84  (T)   charCode=0        
keypress keyCode=116 (t)   which=116 (t)   charCode=116 (t)  
keyup    keyCode=84  (T)   which=84  (T)   charCode=0        
keyup    keyCode=17        which=17        charCode=0  

我认为这意味着它们已被点击。但是,没有反应,也没有创建选项卡。任何地方都没有错误显示,没有抱怨。没有什么。我不确定这是错误还是问题还是我可能做的不对。所以如果有人有任何想法,请帮助。

要打开新标签页,您可以尝试使用

driver.executeScript('window.open();');

尝试使用以下(机器人 Class):

   Robot robo = new Robot();
   robo.keyPress(KeyEvent.VK_CONTROL);
   robo.keyPress(KeyEvent.VK_T);
   robo.keyRelease(KeyEvent.VK_CONTROL);
   robo.keyRelease(KeyEvent.VK_T);
protected void openNewTab(String url) {
        ((JavascriptExecutor) driver).executeScript("window.open('" + url + "','_blank');");
    }

使用此方法打开带有 url

的新标签页