khr*_*ris 12 selenium tabs window webdriver selenium-webdriver
我正在使用Selenium WebDriver.每个链接都在新的浏览器窗口中打开.这对我来说不方便.如何更改它以便在新标签中打开?
Das*_*ash 10
Selenium现在可以在一天内切换标签.下面的code1:适用于firefox,code2:对于IE和chrome,我们可以使用Robot类,控件不会自动移动到当前标签,所以我们需要使用窗口句柄方法切换到当前标签.下面给出的代码将运行良好当我们运行单个脚本但是作为套件运行时,您可能会感到执行键盘事件的痛苦.为了避免我们通过在selenium-Java中使用javascript执行器使用用户定义的javascript方法来获得其他可能性.
我们可以通过识别为我们打开的每个窗口分配的名称来切换窗口和选项卡,名称将使用字母数字字符.
***Code 1***
//First tab(default tab)
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
//second tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("https://yahoo.com");
//third tab
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
driver.navigate().to("http://www.google.com");
//move to very first tab.
driver.findElement(By.cssSelector("body"))
.sendKeys(Keys.CONTROL + "\t");
// To close the current tab.
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");
**code 2**
driver.navigate().to("http://www.google.com");
driver.manage().window().maximize();
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_T);
Set<String> handles = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handles);
String newTab = handlesList.get(handlesList.size() - 1);
// switch to new tab
driver.switchTo().window(newTab);
driver.get("http://www.yahoo.com");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
28217 次 |
最近记录: |