gpt4 book ai didi

java - Appium 中混合应用程序的多个屏幕截图

转载 作者:行者123 更新时间:2023-12-01 10:46:45 25 4
gpt4 key购买 nike

我一直在 Appium 中使用屏幕截图[public void getScreenshot(){...}]来测试失败并启动。我想为我的套件中的每个 findElement() 调用相同的方法。我尝试这样做:

创建自定义驱动程序:

public class CustomDriver extends AppiumDriver{
public WebElement scrollToExact(String element) {
WebElement x = null;
return x;
}

public WebElement scrollTo(String element){
WebElement y = null;
return y;
}

@Override
public List<WebElement> findElements(By by) {
try {
getScreenshot();
}
catch (IOException iox){
System.out.println(iox.getMessage());
}
return by.findElements(this);
}

@Override
public WebElement findElement(By by) {
try {
getScreenshot();
}
catch(IOException iox){
System.out.println(iox.getMessage());
}
return by.findElement(this);
}
}

使用此驱动程序创建测试套件。

Q1。虽然这对我来说效果很好,但是当我将上下文切换到 Webview 时,我的驱动程序不会响应在该上下文中查找元素。我在这里跟进有什么问题吗? [如果需要,会提供详细信息,但自己不确定。]

第二季度。有没有什么更简单的东西我缺少为我的套件中的每个 findElement() 调用获取屏幕截图

最佳答案

根据我的经验,屏幕截图仅在 NATIVE_APP 上下文中工作,因此,如果您位于 WebView 上下文中,则必须切换到 native 上下文,然后再切换回来,如下所示:

    @Override
public List<WebElement> findElements(By by) {
String originalContext = getContext();
if ("NATIVE_APP".equals(originalContext)) {
originalContext = null; // no need to switch
} else {
context("NATIVE_APP");
}
try {
getScreenshot(); // Before screenshot
return super.findElements(by);
} finally {
if (originalContext!=null) {
context(originaContext);
}
}
}

关于java - Appium 中混合应用程序的多个屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34134564/

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