2017-12-10 19 views
0

실제 iOS 장비에서 Appium 테스트를 실행하려고합니다. 그러나 Safari에서 탭을 전환하는 방법을 알 수 없습니다. Appium IOSDriver 인스턴스를 사용하여 Safari에서 페이지를 엽니 다. 그런 다음 새 탭을 여는 페이지의 링크를 클릭하십시오. 이제이 탭을 닫거나 적어도 원래 창으로 돌아가고 싶습니다.Appium을 사용하는 iOS Safari의 탭 간 전환

나는 다음과 같은 솔루션을 시도했지만 그들 중 누구도 도움이 보이지 않는다 :

  1. 는 탭 옵션을 클릭 못했고, 탭 인터페이스를 엽니 터치 작업을 수행합니다.

    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(); 
    

    시도 스위치를 다시 원본 문장에

  2. ,

    for (String contextName : contextNames) { 
        if(!contextName.equals(original)) { 
         WebViewContext = contextName; 
         ((AppiumDriver) driver).context(WebViewContext); 
         Thread.sleep(4000); 
         driver.close(); 
        } 
    } 
    
  3. 자바 스크립트를 시도 나는 아래의 방법을 시도

    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

더 성공을 도울하고 그것은 작동하지 않았다 나를 위해 :

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(); 

사진을 찍어주세요. 희망이 도움이

+0

어떤 이유로, 같은 스크립트가 이전에 나를 위해, 내 질문에 코드 스 니펫 (2)을 작동하지 않았다. 그러나, 나는 잠깐/잠을 당신의 대답을 읽은 후 다시 시도하고 트릭을 할 것으로 보인다. 감사 – BountyHunter