Open Jacobvu84 opened 4 years ago
import static com.linecorp.questions.core.ScreenshotQuestion.screenshot;
import java.io.File;
import java.io.IOException;
import org.openqa.selenium.Point;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.Question;
import com.linecorp.utils.DriverUtils;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.imagecomparison.OccurrenceMatchingOptions;
import io.appium.java_client.imagecomparison.OccurrenceMatchingResult;
public class LocationQuestion implements Question<Point> {
private File image;
private LocationQuestion(File image) {
this.image = image;
}
public static LocationQuestion locationOf(File image) {
return new LocationQuestion(image);
}
@Override
public Point answeredBy(Actor actor) {
try {
AppiumDriver driver = (AppiumDriver) DriverUtils.getDriverFrom(actor);
File screenshot = screenshot().answeredBy(actor);
OccurrenceMatchingResult location = driver.findImageOccurrence(screenshot, image, new OccurrenceMatchingOptions().withEnabledVisualization());
location.storeVisualization(new File("DebugOccurrence.png"));
return new Point(location.getRect().x, location.getRect().y);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
Remember