如何在 Selenium 中切换到活动标签页?
我们可以在 Selenium 中切换到活动标签页。方法 **Keys.chord** 和 **sendKeys **用于打开新标签页。可以使用 Keys.chord 方法一次传递多个键。
**Keys.CONTROL** 和 **Keys.ENTER** 组合作为参数传递给 Keys.chord 方法。这将存储为一个字符串,然后再次作为参数传递给 **sendKeys **方法。
语法
String tb = Keys.chord(Keys.CONTROL,Keys.ENTER); driver.findElement(By.xpath("//*[text()='Company']")).sendKeys(tb);
所有打开的窗口 ID 都存储在一个数组列表中。默认情况下,驱动程序已将焦点放在父窗口上。要将焦点切换到新标签页,可以使用 **switchTo().window** 方法。
**getWindowHandle** 方法用于保存活动标签页的窗口 ID,然后将其作为参数传递给 **switchTo().window** 方法。**getWindowHandles **方法保存所有已打开的窗口 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 SwitchActiveTab{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); WebDriver driver = new ChromeDriver(); // wait of 5 seconds driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); driver.get("https://tutorialspoint.com/about/about_careers.htm"); // Keys.Chord string String tb = Keys.chord(Keys.CONTROL,Keys.ENTER); driver.findElement(By.xpath("//*[text()='FAQ']")).sendKeys(tb); Thread.sleep(10000); // store window ids in array list ArrayList<String> wid = new ArrayList<String>(driver.getWindowHandles()); //switch to active tab driver.switchTo().window(wid.get(1)); System.out.println("Page title of active tab: " + driver.getTitle()); //switch to parent driver.switchTo().window(newTb.get(0)); System.out.println("Page title of parent window: " + driver.getTitle()); driver.quit(); } }
输出
广告