gpt4 book ai didi

java - Appium MobileElement.tap();不适用于移动网络的 iosSimulator 8.2

转载 作者:行者123 更新时间:2023-11-30 03:19:14 25 4
gpt4 key购买 nike

我正在使用 Java 在 ios safari 上自动测试移动网络

一切似乎都设置正确,但 appium 因错误而崩溃:

uncaughtException: Cannot read property 'x' of undefined

触摸命令在日志中出现,如下所示:

info: --> POST /wd/hub/session/1a925d31-d3cd-4231-9698-f7ff4db739fd/touch/perform {"actions":[{"action":"press","options":{"element":"5001"}},{"action":"wait","options":{"ms":1}},{"action":"release","options":{}}]}
info: [debug] Pushing command to appium work queue: "au.getElement('5001').rect()"
info: [debug] Sending command to instruments: au.getElement('5001').rect()

我的代码如下所示:

public void tap(MobileElement element) {
appiumDriver.context(getContext("NATIVE"));
element.tap(1,1);
appiumDriver.context(getContext("WEBVIEW"));
}

protected String getContext(String partial) {
String result = null;
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
if(contextName.contains(partial)){
result = contextName;
}
}
if (result == null){
throw new NoSuchContextException("Could not find requested context");
}
return result;
}

我正在向它提供一个 mobileElement。

我可以通过将其视为 WebElement 并执行 getlocation() 来获取元素位置,然后我可以使用 TouchAction,这就 appium 正在做的事情而言,它是有效的,但位置非常关闭,所以我尝试在此处使用 mobileElement tap() 操作。

有谁知道解决方法或看看我可能做错了什么?我的网站有很多需要 tap() 的元素。

当我定义一个 WebElement,然后进入 native 上下文并使用 iosDriver.tap(1, webelement, 1); 时也会发生这种情况,并且在appium 侧。

最佳答案

尝试以下:

   AppiumDriver appiumDriver = new AppiumDriver();
String originalContext = appiumDriver.getContext();
Point coordinate = element.getLocation();
Dimension loc = element.getSize();
int centerX = loc.getWidth() / 2 + coordinate.getX();
int centerY = loc.getHeight() / 2 + coordinate.getY();
appiumDriver.context("NATIVE_APP");
appiumDriver.tap(1, centerX, centerY, 2);
appiumDriver.context(originalContext);

问题是,在 native 上下文中,Appium 对网页上的 Web 元素没有任何可见性,您需要获取坐标,然后使用带有坐标的 Tap 方法进行单击

关于java - Appium MobileElement.tap();不适用于移动网络的 iosSimulator 8.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31757101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com