Problem: Automatisierung mit iOS Tatsächliche Gerät mit Appium, alles was ich versuche ist bis zu einem bestimmten Element, das nicht in der aktuellen Seite und wähle das Element aus./klicke auf dieses Element.iOS - Tatsächliches Gerät - Appium Scroll: Muss zu einem bestimmten Element scrollen und klicken Sie
bisher benutzt:
scrollTo ("text") und scrollToexact ("text") verwendet - kam zu wissen, dass dies jetzt in Java-Client depricated wird. Ich möchte nur bestätigen, ist es wahr?
haben versucht, die unten zu verwenden, aber noch kein Glück
MobileElement Schieber = Treiber .findElement (MobileBy .IosUIAutomation ("Tableviews() [0]" +“.scrollToElementWithPredicate ("Name CONTAINS 'Slider'"))); assertEquals (slider.getAttribute ("name"), "Sliders");
Es wäre hilfreich, wenn jemand mir dieses Problem lösen helfen könnte, würde auch gerne die Schriftrolle für Android tun, auch später, habe es noch nicht ausprobiert.
Sie den Code unten ist, wo ich verschiedene Techniken, aber immer noch keinen Erfolg verwendet haben, startet die Code läuft die App, funktioniert aber nicht bewegen und jedes Element auswählen:
import java.io.File;
import java.net.URL;
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import org.junit.AfterClass;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileBy;
import io.appium.java_client.MobileElement;
import io.appium.java_client.ios.IOSDriver;
import io.appium.java_client.ios.IOSElement;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class testfour {
public static IOSDriver driver;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
DesiredCapabilities capabilities = new DesiredCapabilities();
//capabilities.setCapability("noReset", true);
capabilities.setCapability("platformName", "iOS");
capabilities.setCapability("deviceName","iPhone_6");
capabilities.setCapability("udid", "840384833537f40d011032eaaf20a53705a451ce");
capabilities.setCapability("BROWSER_NAME", "iOS");
capabilities.setCapability(CapabilityType.VERSION, "9.2.1");
capabilities.setCapability(CapabilityType.PLATFORM, "MAC");
capabilities.setCapability("autoAcceptAlerts", true);
capabilities.setCapability("autoAcceptAlerts", true);
driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void test() throws InterruptedException {
System.out.println("TEST STARTED");
//Make
driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATableView[1]/UIATableCell[6]/UIAStaticText[1]").click();
System.out.println("TEST STARTED6 MAKE");
//Select Audi and model a8
driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[8]/UIAStaticText[1]").click();
System.out.println("TEST STARTED5 AUDI");
driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIAScrollView[1]/UIATableView[1]/UIATableCell[8]/UIAStaticText[2]").click();
System.out.println("TEST STARTED4 MODEL");
//driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[17]/UIAStaticText[1]").click();
System.out.println("TEST STARTED3");
//String Str = "A8";
System.out.println("TEST STARTED2");
//MobileElement slider = (MobileElement) driver.findElement(MobileBy.IosUIAutomation(".tableViews()[2]"+ ".scrollToElementWithPredicate(\"name CONTAINS 'Slider'\")"));
MobileElement slider = (MobileElement) driver.findElement(MobileBy.IosUIAutomation("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[17]"+ ".scrollToElementWithPredicate(\"name CONTAINS 'A8'\")"));
System.out.println("TEST STARTED1");
assertEquals(slider.getAttribute("A8"), "Sliders");
System.out.println("TEST STARTED0");
// MobileElement table = (MobileElement) driver.findElement(MobileBy.IosUIAutomation(".tableViews()[0]"));
// MobileElement slider = (MobileElement) table.findElement(MobileBy.IosUIAutomation(".scrollToElementWithPredicate(\"name CONTAINS 'Slider'\")"));
// assertEquals(slider.getAttribute("name"), "Sliders");
//driver.findElementByIosUIAutomation(".scrollToElementWithName(\""+ Str + "\")").click();
//WebElement tableView = driver.findElementByIosUIAutomation(".tableViews() [2]");
//((IOSElement) tableView).scrollTo("A8");
//((IOSElement) tableView).scrollTo("A8").click();
System.out.println("TEST STARTED1");
//driver.execute("mobile: scroll", [{direction: 'down', driver.findElementByXPath: ("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[17]/UIAStaticText[1]"}]);
//driver.scrollTo("A8").click();
//JavascriptExecutor jes = (JavascriptExecutor) driver;
//HashMap<String, String> scrollObject = new HashMap<String, String>();
//scrollObject.put("direction", "down");
//scrollObject.put("element", (driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[17]/UIAStaticText[1]")));
//jes.executeScript("mobile: scroll", scrollObject);
//jes.executeScript(arg0, arg1)
//driver.swipe(startx, starty, endx, endy, duration);
//driver.switchTo()
//jes.executeScript("arguments[0].scrollIntoView(true);", driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIATableView[2]/UIATableCell[17]/UIAStaticText[1]"));
//driver.findElementByXPath("//UIAApplication[1]/UIAWindow[1]/UIAButton[7]").click();
// driver.scrollToExact(text)
// driver.scrollTo("//UIAApplication[1]/UIAWindow[1]/UIAButton[7]").click();
//Select Model000
driver.findElement(By.linkText("All Models")).click();
driver.findElement(By.linkText("AVALON")).click();
//Click on Search button
driver.findElement(By.id("search_btn")).click();
// Click on the Search Alert Bar
driver.findElement(By.id("switchButton")).click();
//ex: for content-desc //Click on the Back button and navigate to home page
driver.findElement(By.name("Navigate up")).click();
//Now click on the Menu in the home page
driver.findElement(By.name("Navigate up")).click();
//Click on the Search Search under the menu item
driver.findElementByLinkText("Saved Searches").click();
//get the text
String text = driver.findElement(By.id("name_tv")).getText();
System.out.println("Actual Text:"+text);
System.out.println("Test has been completed");
}
private void assertEquals(String attribute, String string) {
// TODO Auto-generated method stub
}
@AfterClass
public void tearDown()
{
driver.quit();
}
}
Willkommen bei Stackoverflow. Bitte stellen Sie sicher, dass Ihre Frage wie hier beschrieben ausführlicher ist: http://stackoverflow.com/help/mcve. Sie erhalten schnellere und bessere Antworten auf vollständige Fragen. – tfv
@All, Irgendwelche Vorschläge dazu? Immer noch mit diesem Thema festgefahren. Ich freue mich auf etwas Hilfe –