[英]How to open multiple tabs and switch between through Selenium and Webdriver?
[英]How to switch between multiple tabs(more than 2) open in same window using Selenium Webdriver
我正在學習Selenium-Webdriver,因此在一種情況下進行練習是可行的,但是我陷入了第3步。 方案如下:
到目前為止,我已經能夠打開Google主頁,對“ WebDriver”一詞進行搜索並打開前兩個鏈接,但是現在我無法切換到第二個和第三個選項卡並關閉它們。 到目前為止,我的代碼是:
String originalHandle = driver.getWindowHandle();
System.out.println("Before switching title is:" +driver.getTitle());
String selectLinkOpeninNewTab = Keys.chord(Keys.COMMAND,Keys.ENTER);
WebElement link1 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[1]/div/h3/a"));
link1.sendKeys(selectLinkOpeninNewTab);
WebElement link2 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[2]/div/h3/a"));
link2.sendKeys(selectLinkOpeninNewTab);
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();
int i = 0;
while(i1.hasNext())
{
i++;
String childwindow = i1.next();
if(!originalHandle.equalsIgnoreCase(childwindow))
{
driver.switchTo().window(childwindow);
Thread.sleep(10000);
System.out.println("After switching title of new Tab "+i+ " title is " +driver.getTitle());
driver.close();
}
}
driver.switchTo().window(originalHandle);
System.out.println("Original window tab title is" +driver.getTitle() );
我不確定問題出在哪里以及如何解決。 :(
我搜索了選項卡切換等功能,但一無所獲。 最接近此窗口的是Windows。 (有很多評論說WindowHandles可以用於選項卡切換,但是事實並非如此-我已經嘗試了很多。它只能用於Windows切換,而不能用於選項卡切換)
如果您需要在新窗口中打開-您需要單擊帶有Shift的btn鏈接
代碼就像
Actions.KeyDown(Keys.Shift).Click(ElementToClick).KeyUp(Keys.Shift).Build().Perform();
如果您需要切換窗口
var _windowsList = new List<String>(Instance.WindowHandles);
Instance.SwitchTo().Window(_windowsList[0]);
可能為時已晚,但希望這會有所幫助:
for (String winHandle : driver.getWindowHandles()) { //Gets the new window handle
System.out.println(winHandle);
driver.switchTo().window(winHandle); // switch focus of WebDriver to the next found window handle (that's your newly opened window)
}
請嘗試以下代碼:
Set<String> s1 = driver.getWindowHandles();
for(String childwindow : s1) {
if(!originalHandle.equals(childwindow)) {
driver.switchTo().window(childwindow);
System.out.println("Tab title is " + driver.getTitle();
}
driver.close();
}
driver.switchTo().window(originalHandle);
希望這可以幫助。
http://www.dev2qa.com/open-multiple-windows-tabs-in-selenium-webdriver/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.