/*
* Copyright 2012 ios-driver committers.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.uiautomation.ios.UIAModels;
import org.json.JSONObject;
import org.openqa.selenium.By;
import org.openqa.selenium.NoAlertPresentException;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.WebElement;
import org.uiautomation.ios.IOSCapabilities;
import org.uiautomation.ios.UIAModels.configuration.DriverConfiguration;
import org.uiautomation.ios.UIAModels.predicate.Criteria;
import org.uiautomation.ios.communication.WebDriverLikeCommand;
import java.io.File;
import java.util.List;
import java.util.Map;
public interface UIADriver extends DriverConfiguration {
// public UIATarget getLocalTarget();
public IOSCapabilities getCapabilities() throws Exception;
public JSONObject logElementTree(File screenshot, boolean translation) throws WebDriverException;
public void quit();
public void pinchClose(int x1, int y1, int x2, int y2, int duration);
public UIAAlert getAlert() throws NoAlertPresentException;
// public void setTimeout(String type, int timeoutInSeconds);
// public int getTimeout(String type);
public <T extends UIAElement> T findElement(Criteria c) throws NoSuchElementException;
public List<UIAElement> findElements(Criteria c);
public void tap(int x, int y);
// public Set<String> getWindowHandles();
public void setConfiguration(WebDriverLikeCommand command, String key, Object value);
public Map<String, Object> getConfiguration(WebDriverLikeCommand command);
public WebElement findElement2(By by);
}