使用 Java 的 Selenium WebDriver 切换标签页。

software testingautomation testingselenium web driverjava

我们可以使用 Selenium 切换标签页。首先,我们必须在新标签页中打开一个链接。将使用 Keys.chord 方法以及 sendKeys。Keys.chord 方法允许您一次传递多个键。键组或字符串作为参数传递给该方法。

我们将传递 Keys.CONTROLKeys.ENTER 作为 Keys.chord 方法的参数。然后将整个字符串作为参数传递给 sendKeys 方法。最后,必须将 sendKeys 方法应用于由 driver.findElement 方法标识的链接。

语法

String clickl = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.xpath("//*[text()='Terms of Use']")). sendKeys(clickl);

然后将所有打开的窗口 ID 保存在 ArrayList 中,并使用 switchTo 方法将驱动程序焦点转移到新选项卡。然后将新选项卡的窗口 ID 作为参数传递给该方法。

最后,在新选项卡上执行任务后,我们可以使用 switchTo 方法切换回父窗口,并将父窗口的窗口 ID 作为参数传递给该方法。

让我们在两个选项卡之间切换 −

示例

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import java.util.List;
import java.util.ArrayList;
public class SwitchTab{
   public static void main(String[] args) {
      System.setProperty("webdriver.chrome.driver",
      "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe");
      WebDriver driver = new ChromeDriver();
      driver.get("https://www.tutorialspoint.com/about/about_careers.htm");
      // 等待 5 秒
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      // Keys.Chord 字符串
      String clickl = Keys.chord(Keys.CONTROL,Keys.ENTER);
      // 在新标签页中打开链接,Keys.Chord 字符串传递给 sendKeys
      driver.findElement(
      By.xpath("//*[text()='Terms of Use']")).sendKeys(clickl);
      Thread.sleep(1000);
      // 将所有窗口句柄保存在数组列表中
      ArrayList<String> newTb = new ArrayList<String>(driver.getWindowHandles());
      //切换到新选项卡
      driver.switchTo().window(newTb.get(1));
      System.out.println("新选项卡的页面标题:" + driver.getTitle());
      //切换到父窗口
      driver.switchTo().window(newTb.get(0));
      System.out.println("父窗口的页面标题:" + driver.getTitle());
      driver.quit();
   }
}

输出


相关文章