使用 Selenium WebDriver 和 Java 切換選項卡
使用 Selenium WebDriver 自動化網頁時,在選項卡之間切換是常見要求。但是,在處理相同視窗中的選項卡時,會出現挑戰,因為兩個選項卡可能具有相同的視窗句柄。
問題:
自動化涉及以下場景的場景時打開新選項卡、在該選項卡中執行操作並返回到原始選項卡(父選項卡) ,使用切換手把可能不起作用。選項卡可能共用相同的視窗句柄,導致它們之間的切換無效。
解決方案1:追蹤視窗句柄
如果視窗句柄可用,您可以使用以下命令切換選項卡執行以下步驟:
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles()); driver.switchTo().window(tabs.get(1)); // Switch to the new tab driver.close(); // Close the new tab driver.switchTo().window(tabs.get(0)); // Switch back to the parent tab
解決方案2:使用Selenium Actions (實驗性)
實驗性的Selenium.Actions 類別提供了select_window 方法,可用於按視窗標題切換標籤:
WebElement parentTab = driver.findElement(By.xpath("//ul/li/a[@id='tab1_link']")); WebElement newTab = driver.findElement(By.xpath("//ul/li/a[@id='tab2_link']")); Actions actions = new Actions(driver); actions.keyDown(Keys.CONTROL).click(newTab).keyUp(Keys.CONTROL).build().perform(); actions.keyDown(Keys.CONTROL).click(parentTab).keyUp(Keys.CONTROL).build().perform();
請記住確保您的驅動程式>請記住確保您的驅動程式程式庫是最新的訪問Selenium.Actions 類別。
以上是如何在Java中使用Selenium WebDriver在瀏覽器標籤之間高效切換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!