如何使用 Java 在 selenium WebDriver 中按 CTRL+T 和 CTRL+TAB?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39338773/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to press CTRL+T and CTRL+TAB in selenium WebDriver using Java?
提问by VISHVAMBRUTHJAVAGALTHIMMEGOWDA
Hi All,
For one of my project I need to open a new tab and navigate between the tabs for the same I need to know how can I press CTRL+Tand CTRL+TABin Selenium Webdriver using Java.
Please let me know how can I do the same.Thank You...!!!
I'm using the below:
Firefox Version:48.0.2
Java Version:1.8
Selenium WebDriver Version:3.0.0
OS:Windows 10
大家好,
对于我的一个项目,我需要打开一个新选项卡并在这些选项卡之间导航,我需要知道如何使用 Java 在 Selenium Webdriver 中按CTRL+T和 CTRL+ TAB。
请让我知道我该怎么做。谢谢...!!!
我正在使用以下内容:
火狐版本:48.0.2
Java 版本:1.8
Selenium WebDriver 版本:3.0.0
操作系统:Windows 10
I tried the below code but it doesn't seems to be working:
我尝试了以下代码,但似乎不起作用:
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Handling_Tabs {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver","C:\Eclipse\Drivers\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
System.out.println(driver.getTitle());
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"t");
driver.get("http://www.bing.com/");
System.out.println(driver.getTitle());
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL+"\t");
System.out.println(driver.getTitle());
}
}
回答by Sandipan Pramanik
You can use Actions class for Ctrl+tor CTRL+TAB. I modified your example as shown below
您可以将 Actions 类用于Ctrl+t或CTRL+ TAB。我修改了你的例子,如下所示
@Test
public void OpeningNewTab(){
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
System.out.println(driver.getTitle());
Actions act = new Actions(driver);
act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform();
driver.get("http://www.bing.com/");
System.out.println(driver.getTitle());
act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform();
driver.get("http://www.yahoo.com/");
System.out.println(driver.getTitle());
driver.close();
driver.quit();
}
回答by Shailendra Rathore
You can use Robot class as well simply import
您也可以使用 Robot 类,只需导入
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class Keyboard {
public static void main(String[] args) {
try {
Robot robot = new Robot();
// Simulate a mouse click
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
// ctrl + T & ctrl TAB
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
// CTRL+T is now pressed
robot.keyRelease(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_CONTROL);
} catch (AWTException e) {
e.printStackTrace();
}
}