当前位置: 首页 > 知识库问答 >
问题:

Appium MobileElement滑动返回未知服务器错误

严正诚
2023-03-14

我试图刷MobileElement,但它给服务器端错误。这里的原因可能是什么?

代码:

 MobileElement mb= (MobileElement)driver1.findElement(By.xpath("//android.widget.ListView[@index='0'][@resource-id='android:id/list']"));

 mb.swipe(SwipeElementDirection.LEFT, 1000);

错误:

org.openqa.selenium.WebDriverExcture:在处理命令时发生了未知的服务器端错误。(警告:服务器未提供任何stackTrace信息)命令持续时间或超时:16毫秒

共有3个答案

燕烨
2023-03-14

使用AppiumDriver更好地在基类中实现这一点

public void swipe(int startx, int starty, int endx, int endy, int duration)

称之为:

driver.swipe((int)screenWidth(), (int)screenHeight()*0.6), (int)screenWidth(), (int)screenHeight()*0.4), 0);
楚嘉
2023-03-14

您可以尝试使用这段代码为所有移动设备进行动态滑动:

Dimension dimension = driver.manage().window().getSize();
int width = dimension.getWidth();
int height = dimension.getHeight();
switch(direction) {
    case "right":
        driver.swipe((int) (width*(0.20)), (int) (height*(0.50)), (int)(width*(0.80)), (int) (height*(0.50)), 6000);
    break;
    case "left":
        driver.swipe((int) (width*(0.80)), (int) (height*(0.50)), (int) (width*(0.20)), (int) (height*(0.50)), 6000);
    break;
    case "up":
        driver.swipe((int) (width*(0.50)), (int) (height*(0.70)), (int) (width*(0.50)), (int) (height*(0.30)), 6000);
    break;
    default:
        driver.swipe((int) (width*(0.50)), (int) (height*(0.30)), (int) (width*(0.50)), (int) (height*(0.70)), 6000);
    break;
}
萧丁雨
2023-03-14

试试这个,这将工作:

TouchAction action = new TouchAction(driver);

int startY2 = element1.getLocation().getY() + (element.getSize().getHeight() / 2);

int startX2 = element1.getLocation().getX() + (element.getSize().getWidth() / 2);

int endX2 = element2.getLocation().getX() + (element2.getSize().getWidth() / 2);

int endY2 = element2.getLocation().getY() + (element2.getSize().getHeight() / 2) - (element2.getSize().getHeight()/2);


action.press(startX2, startY2).waitAction(2000).moveTo(endX2, endY2).release().perform();
 类似资料:
  • 我试图从当前上下文中的所有项目中找到一个项目,但我似乎总是收到以下错误消息: 请求失败。远程服务器返回错误:(401)未授权。 首先,我设置了访问交换服务的所有内容: 然后我定义要接收的项目(按ID): 最后但同样重要的是,我尝试在我的物品中搜索这个物品: 这就是我的错误发生的地方。我尝试过各种其他的方法,但无论我做什么,我都会被授权。 有人可以以正确的方式指导我,以解决这个问题吗? 编辑 我收到

  • 问题内容: 我正打算实施GCM。我编写了一个测试代码以了解其工作原理,但在响应中不断出现错误400。 我正在用Java(JDK 7)编写。 在这个主题上,我遵循了这一原则。我在那里修改了给定的代码,并将ObjectMapper的用法更改为Gson。 这是我对数据对象的代码: *我在服务器参考中看到,在HTTP协议中,我可以只发送带有registration_ids的消息。(所有其他均为可选) 这是

  • 问题内容: 我正在使用GCM服务从服务器推送信息。如果我使用浏览器密钥,它将成功消息显示为: {“ multicast_id”:4849013215736515938,“ success”:1,“ failure”:0,“ canonical_ids”:0,“ results”:[{“ message_id”:“ 0: 1348742583011905%2adac3a0f9fd7ecd“}]},

  • 我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:

  • 我正在尝试使用Apache Http组件4.5.1使用Instagram进行oauth登录,但未能成功获取访问令牌。 我很确定这是库本身的问题,因为如果我卷曲,我会得到我想要的结果。 所以,我尝试了几种不同的发布调用方式,但它们都给我相同的结果,所以我将发布我发现的最优雅的方式是使用Fluent-hc lib: 我得到的结果是: Java语言网未知后异常:api。instagram。com:名称或

  • 我使用spring ide在本地机器嵌入式apache服务器上部署了spring boot web应用程序,并访问了一个带有错误令牌的url,在这种情况下,它会返回未经授权的访问错误401和托管异常处理抛出的特定错误消息,而如果我在独立但相同的apache服务器上部署相同的应用程序,它会给我500个内部服务器错误而不是401或任何其他服务器端错误。 我捕获的日志只有以下一行不同: 下面是我用来处理