問題:iOSを使用した自動化Appiumを使用している実際のデバイスは、現在のページにない特定の要素までスクロールし、その要素を選択します./clickをクリックします。iOS - 実際のデバイス - appiumスクロール:特定の要素にスクロールしてクリックする必要があります。
は、これまでに使用される:
はscrollTo( "テキスト")とscrollToexact( "テキスト")を使用- これは、Javaクライアントで今廃止予定されていることを知るようになりました。ちょうどそれが本当であることを確認したいですか?
は、以下を使用しようとしないが、それでも運
MobileElementスライダー=ドライバ .findElement(MobileBy .IosUIAutomation(やった "tableViews()[0]" +」.scrollToElementWithPredicate( \ "name CONTAINS 'スライダー' \") ")); assertEquals(slider.getAttribute( "name")、 "Sliders");
いくつかのいずれかが、私はこれを解決するのに役立つ可能性があり、後に同様のアンドロイドのためのスクロールをしたいと思っ、まだ試していない場合には役立つだろう。以下は
iは、様々な技術が、まだありません成功を使用しているコードで、コードは、アプリを起動しますが、任意の要素をスクロールして選択しない実行されます。
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();
}
}
ようこそStackoverflow。詳細については、ここで説明するように質問が完了していることを確認してください。http://stackoverflow.com/help/mcve完全な質問については、より早く、より良い回答を得ることができます。 – tfv
@All、これに関する提案はありますか?まだこの問題で立ち往生しています。いくつかの助けを楽しみにして –