我已經使用了下面的代碼,但它會引發一個錯誤,說「無法關注元素」。請幫忙。如何在java中使用Selenium webdriver按「ALT + T」。我想通過按切換標籤頁
String selectAll = Keys.chord(Keys.ALT,"T");
driver.findElement(By.tagName("html")).sendKeys(selectAll);
我已經使用了下面的代碼,但它會引發一個錯誤,說「無法關注元素」。請幫忙。如何在java中使用Selenium webdriver按「ALT + T」。我想通過按切換標籤頁
String selectAll = Keys.chord(Keys.ALT,"T");
driver.findElement(By.tagName("html")).sendKeys(selectAll);
來切換標籤是使用SWITCHTO()最好的辦法,如果你知道新的窗口名稱:
driver.switchTo().window(WINDOW_NAME);
否則獲取打開窗口的列表,並使用該開關:
List<String> openTabs = driver.getWindowHandles();
for(String tab in openTabs) {
driver.switchTo().window(openTabs.get(tab);
}
所以你可以迭代打開的窗口,直到找到你需要的。
您可以將ShortcutKeys如Alt + Tab
發送給驅動程序,而不使用Actions使用元素。
public static void sendShortCut(WebDriver driver) {
Actions action = new Actions(driver);
action.sendKeys(Keys.chord(Keys.CONTROL, "T")).build().perform();
}
但是,您的目標是切換到窗口/選項卡。在Selenium中,窗口和選項卡都相同。
我提供您兩種解決方案是自我解釋從功能
public static void switchToWindowByTitle(WebDriver driver, String title) {
Set<String> Handles = driver.getWindowHandles();
for (String handle : Handles) {
driver.switchTo().window(handle);
String drivertitle = driver.getTitle().trim();
if (drivertitle.equals(title)) {
break;
}
}
}
//Index is 0 based
public static void switchToWindowByIndex(WebDriver driver, int index) {
Set<String> handles = driver.getWindowHandles();
if (handles.size() > index) {
String handle = handles.toArray()[index].toString();
driver.switchTo().window(handle);
}
}
得到一個錯誤,無效是無效的類型變量switchToWindowByIndex –
@SrikrishnaNadagouda你必須把功能外main()和你是如何調用該函數嗎?你可以發佈您的代碼 – Madhan
可以使用打開另一個選項卡中的名稱:使用
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
,並切換到標籤:
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL, Keys.PAGE_DOWN);
任何人都可以讓我知道了正確的語法?我對Selenium很陌生。上面的代碼不起作用。我正在使用Chrome驅動程序。 –
@SrikrishnaNadagouda看到我的編輯 – Cathal