मेरे पास एक एंड्रॉइड ऐप है जहां मेरी गतिविधि में सूची दृश्य शामिल है। मैं सूची दृश्य आइटम को हटाने के लिए स्वाइप के लिए ऑटोमेशन टेस्ट केस काम कर रहा हूं। मैंने अपनी सूची दृश्य लाने के लिए यह कोड लिखा है:
List<WebElement> list = driver.findElements(By.id("com.xyz.email:id/conversation_list_view"));
list.get(0).click();
यह कोड प्रथम सूची दृश्य आइटम पर क्लिक करने वाला है, लेकिन यह अपेक्षा के अनुरूप काम नहीं कर रहा है।
मैंने सूची दृश्य आइटम को हटाने के लिए स्वाइप के लिए एक और कोड लिखा है:
MobileElement emailCell = (MobileElement) driver.findElementByXPath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.ListView/android.widget.FrameLayout/android.view.View");
androidPhone.swipeOnElement("left", emailCell);
मेरे पास "swipeOnElement" नामक एक फ़ंक्शन तैयार है जो आइटम को दाएं से बाएं स्वाइप करता है।
Dimension size = driver.manage().window().getSize();
double endX = 0;
double endY = 0;
int elementX = element.getCenter().x;
int elementY = element.getCenter().y;
int finalX;
int finalY;
switch (direction) {
case "left":
endX = size.width;
break;
case "right":
endX = 0;
break;
case "up":
endY = 0;
break;
case "down":
endY = size.height;
break;
}
if (direction == "left" | direction == "right") {
finalX = (int) endX;
finalY = elementY;
} else {
finalX = elementX;
finalY = (int) endY;
}
System.out.println("startY=" + elementY);
System.out.println("startX=" + elementX);
System.out.println("endY=" + finalY);
System.out.println("endX=" + finalX);
new TouchAction(driver)
.press(element)
.waitAction(300)
.moveTo(finalX, finalY)
.release()
.perform();
delay(1000);
यह फ़ंक्शन ठीक है। यह पूरी तरह से काम कर रहा है। लेकिन जब मैंने इसे सूची दृश्य आइटम पर आज़माया, तो यह अपेक्षा के अनुरूप काम नहीं कर रहा है। मुझे नहीं पता कि यह ऐसा व्यवहार क्यों करता है। कृपया कोई मदद !!!
2 जवाब
यहां मुझे अपना समाधान मिला:
TouchAction नामक एक वर्ग उपलब्ध है जहाँ आपको फंक्शनल चेनिंग के रूप में पैरामीटर और कॉल किए गए फ़ंक्शन देने होते हैं।
new TouchAction(driver)
.press(mobileElement)
.waitAction(300)
.moveTo(0,100)
.release()
.perform();
यहाँ ड्राइवर AppiumDriver का एक ऑब्जेक्ट है और mobileElement MobileElement का एक ऑब्जेक्ट है। मूव टू फंक्शन वह है जो वास्तव में पूरी स्वाइपिंग चीजें कर रहा है। यह स्वाइप करने के लिए शुरुआती पोजीशन और एंडिंग पोजीशन लेता है।
प्रयत्न
swipeLeft(MobileElement mobileElement) {
LOGGER.info("Swiping Left ...");
Dimension size = getWindowSize();
int x1 = (int) (size.width * 0.01);
new TouchAction(driver).press(mobileElement).waitAction(Duration.ofSeconds(1)).moveTo(x1,0).release().perform();
}
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।