我正在尝试在真实的iOS设备上运行我的Appium测试。但是,我无法想象如何在Safari上的标签之间切换。我使用Appium IOSDriver实例在Safari上打开一个页面。然后,我单击页面上的一个链接,打开一个新选项卡。现在我希望关闭此选项卡或至少切换回原始窗口。
我尝试过以下解决方案,但似乎没有任何帮助:
执行触摸操作以打开选项卡界面,无法单击选项卡选项。
TouchAction ta = new TouchAction(driver);
int h=driver.manage().window().getSize().getHeight();
int w=driver.manage().window().getSize().getWidth();
ta.tap(h-50,w-50).perform();
尝试切换回原始上下文,没有帮助
for (String contextName : contextNames) {
if(!contextName.equals(original)) {
WebViewContext = contextName;
((AppiumDriver) driver).context(WebViewContext);
Thread.sleep(4000);
driver.close();
}
}
尝试过Javascript,没有成功
Set<String> windows = driver.getWindowHandles();
String currentHandle = driver.getWindowHandle();
((JavascriptExecutor)driver).executeScript("window.open();");
Set<String> newWindow = driver.getWindowHandles();
newWindow.removeAll(windows);
driver.switchTo().window(original);
答案 0 :(得分:0)
我尝试过以下方式,它对我有用:
IOSDriver driver = new IOSDriver();
driver.get("url to be opened");
WebElement ele = driver.findElement(By.xpath("xpathOfElementToBeclicked"));
ele.click(); //New window opens
Set<String> contextView = ((AppiumDriver)driver).getContextHandles();
ArrayList<String> s = new ArrayList<String>(contextView);
((AppiumDriver)driver).context(s.get(contextView.size()-1));
driver.close();
试一试。希望这有帮助