Appium+Java自动化测试 android混合APP的webview页面截图怎么截?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+Java自动化测试 android混合APP的webview页面截图怎么截?相关的知识,希望对你有一定的参考价值。

非webview页面用File scrFile = Drivername.getScreenshotAs(OutputType.FILE)可以正常截图,但是到了webview页面执行到这一句就不动了,哪里都没有报错,一直停在这句代码。
webview页面不能共用这个方法吗?

参考技术A 先切回原生页面在进行截图
Drivername.context("NATIVE_APP");

如何在 Mac OS 上设置 Appium 以在 Android 和 iOS 设备上运行来自 JAVA 类的自动化测试

【中文标题】如何在 Mac OS 上设置 Appium 以在 Android 和 iOS 设备上运行来自 JAVA 类的自动化测试【英文标题】:How to setup Appium on Mac OS to run automated tests from JAVA classes on Android and iOS devices 【发布时间】:2014-09-08 22:01:52 【问题描述】:

我在 Appium 中遇到的问题是我在下面决定的。如果不使用 SUDO,我找不到为 Appium 安装所需组件的方法。在使用 SUDO 安装完所有内容后,然后尝试运行 Appium,我收到错误提示应该在没有 SUDO 的情况下安装 Appium 和 NODE。尝试在线搜索解决方案花了我很长时间,因为在使用 JAVA 开发测试时,几乎没有在线教程可以让 Appium 在 MAC 上运行。以下是有关如何在 Mac OS 上设置 Appium 并从 Java 类中运行第一个测试的分步说明。只需将命令复制并粘贴到 Mac 上的终端中即可进行设置。我希望 Appium 有更清晰的在线分步教程。 Appium 的开发者写的教程太模糊了,我什至不建议去他们的网站寻找答案。

【问题讨论】:

krishnachetan.medium.com/setup-appium-on-mac-1e06f1178427 【参考方案1】:

由 Igor Vishnevskiy 回答 我一直在互联网上到处寻找答案,但找不到任何东西。我花了一些时间来完成这项工作。我希望这个快速指南能帮助下一位工程师节省一些时间来设置 Appium 以在 Android 设备上运行自动化。如果使用 SUDO 安装 NODE 或 Appium 本身,则 Appium 将不会运行,并且 MAC 不会让您在不使用 SUDO 的情况下安装。不过有一个解决方法。我的步骤使得以正确的方式安装和设置 Appium 成为可能,而无需使用 SUDO 进行安装。一切都经过测试并且可以正常工作。以下是步骤。享受吧!

使用以下步骤设置 Appium 时可能会出现一个问题。如果您在创建数据或将数据保存到某些目录时遇到一些错误,那是由于对这些目录设置了写权限的运气造成的。您需要做的是将 CHMOD 设置为 777 到 Appium 组件在安装时尝试写入的目录,然后再次重新运行所有步骤。

第 1 步: 安装 JAVA 6。您将需要带有 Appium 的 JAVA 6。 Mac OS 的 JAVA 6 必须从 Apple 的支持页面下载: http://support.apple.com/kb/DL1572

第 2 步: 在您的 bash 中使用以下格式添加以下路径:

export PATH=$HOME/local/bin:$PATH

第 3 步: 设置 Maven(下载并设置 Maven 的 Bash 配置文件路径):

http://maven.apache.org/download.cgi

-----> 这就是您的 Bash 个人资料的外观:

export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/platform-tools":$PATH
export PATH="/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140702/sdk/tools":$PATH
export PATH=$HOME/local/bin:$PATH
export ANDROID_HOME=/Users/your_username/Desktop/adt-bundle-mac-x86_64-20140321/sdk
export PATH="/Users/your_username/Desktop/apache-maven-3.2.2/bin":$PATH
export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

显然,要在 Android 设备上运行测试,您还需要下载 Android SDK 并将其添加到您的 Bash 配置文件中。要在 iOS 设备上运行测试,您只需要安装 XCode,无需将其添加到您的 Bash 配置文件中。但必须添加 Android SDK。

第 4 步: 将以下命令序列复制并粘贴到终端窗口中,然后按 ENTER。将它们复制并粘贴在一起就可以了。安装NODE需要一些时间,请耐心等待。

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install

第 5 步: 完成第 4 步的安装后,在终端窗口中运行以下命令:

curl https://www.npmjs.com/install.sh | sh

第 6 步: 然后在您的终端窗口中执行以下命令:

npm install -g grunt-cli

第 7 步: 然后在您的终端窗口中执行以下命令:

npm install -g appium

第 8 步: 然后在您的终端窗口中执行以下命令:

npm install wd

第 9 步: 然后在您的终端窗口中执行以下命令来启动 Appium 服务器:

appium &

(第 9 步将启动服务器)。

第 10 步: 从单独的终端窗口 cd 到工作区中 JAVA 项目的根目录。 (例如:cd /Users/ivishnevskiy/Documents/workspace/ApiumJUnit

第 11 步: 将您的 Android 设备连接到 USB 和您的 MAC 计算机。

第 12 步: 在第 10 步的同一终端窗口中,运行以下命令以启动 Appium 测试:

mvn -Dtest=test.java.com.saucelabs.appium.AndroidContactsTest test

其中 test.java.com.saucelabs.appium 是包名 和 AndroidContactsTest 是一个类名。

如果您仍然需要设置帮助。让我知道。我可以搭把手。我的领英: http://www.linkedin.com/pub/igor-vishnevskiy/86/51a/b65/

在您的设备上设置应用程序后,按照我的下一个教程在 ECLIPSE 中创建并在实际的 iOS 设备(不是模拟器)上运行您的第一个测试: https://***.com/questions/24919159/

【讨论】:

写得很好。我还将添加此步骤以升级到最新版本:npm install -g appium【参考方案2】:

我使用这篇文章来帮助我在我的 Mac 上设置 Appium。我还使用其他资源来完成我的安装。以下是在 Mac OS X 上无缝升级到 appium 1.7.x 的分步说明。

在开始升级过程之前,请记下以下详细信息

如果您的系统之前没有安装 Appium,请仅使用下面与“安装”相关的命令 如果您在使用命令行删除文件夹/目录时遇到任何问题,请转到 Finder 并删除它 在您的 Mac 机器上升级到新操作系统后,App Store 和 iTunes 第一次可能会延迟打开并且运行缓慢

分步说明

    需要安装OS 10.12.x或更高版本。

    需要安装 Xcode 9.x。使用您的开发者帐户 (https://developer.apple.com/download/more/) 登录并下载或从 Mac 应用商店免费下载

注意 - 如果您在安装新版本的 Xcode 时遇到问题,请卸载旧版本。

    需要为 Xcode 9.x 安装命令行工具。

启动终端并输入以下命令

xcode-select --install
    卸载 HomeBrew

卸载命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
    安装 HomeBrew

安装命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    卸载所有节点实例

    转到/usr/local/lib并删除任何nodenode_modules

    转到/usr/local/include 并删除任何nodenode_modules 目录 如果您使用brew 安装,请安装node,然后在您的终端中运行brew uninstall node

    检查您的主目录是否有任何本地或 lib 或包含文件夹,并从那里删除任何 nodenode_modules。 (要到达主目录打开终端并输入cd

    转到/usr/local/bin 并删除任何节点可执行文件

    安装节点

命令:

brew install node
    安装 ideviceinstaller:

命令:

brew install ideviceinstaller
    从终端卸载 Appium

命令:

npm uninstall -g appium
npm cache clean --force
    安装 Appium

命令:

npm install -g appium@1.7.2** (Or we can just do npm install -g appium)
    需要为 Appium 1.7.2 安装支持工具

命令:

brew install carthage
npm install -g ios-deploy
npm install -g deviceconsole
    如需下载模拟器,请访问Xcode --> Preferences --> Components,并下载必要的模拟器。

【讨论】:

【参考方案3】:

需要遵循的步骤:

    安装 xcode 安装xcode命令行工具 安装 Appium GUI *.dmg 文件 Appium 安装 homebrew(假设你的 mac 上安装了 ruby​​,如果没有先安装 ruby​​) 安装 Java(它应该与 mac OS 一起提供) 从终端使用 brew 命令安装节点和 Maven 使用节点安装 Appium 服务器 npm install –g appium appium & 通过在终端输入以下命令授权您的 iOS 模拟器和设备通过 Appium 访问:sudo authorize_ios

:)

我制作了一个关于如何在 Mac 电脑上配置 appium 的视频,可以在这里viewed。

幻灯片可以是viewed here。

【讨论】:

【参考方案4】:

按照这些步骤操作。

下载的先决条件。 1.Appium 2.安卓SDK 3.Java JDK 4.安卓.apk文件 5. Xcode和命令行工具

流程:

    使用命令行工具和 appium 安装 Xcode。 下载所有 Android SDK 必要工具,包括强制平台工具和构建工具 下载并安装 Java JDK

设置 $Path 和配置

    使用命令open .bash_profile 打开 bash_profile

    将内容复制到您的 .bash_profile

    export ANDROID_HOME=/Users/username/Library/Android/sdk .  (copy it from the sdk manager in android studio)
    export PATH=$ANDROID_HOME/platform-tools:$PATH
    export PATH=$ANDROID_HOME/tools:$PATH
    export JAVA_HOME=$(/usr/libexec/java_home)export       PATH="/usr/local/opt/openssl/bin:$PATH"
    

复制以上内容,并保存.bash_profile

    转到 Appium,然后单击 Android 符号。选择并选择.apk(将apk放在项目文件夹中) 勾选设备名称并在功能中选择适用的 Android 版本。 在Android下的高级设置中,选择sdk路径(从android sdk管理器复制)

    点击设置符号,为environment variables添加值

           ANDROID_HOME          /Users/username/Library/Android/sdk (Copy the path from sdk manager)
    

    连接设备或启动模拟器,然后在appium中点击Launch,然后点击Inspector,这将创建一个会话并在您的手机中启动应用程序并抓取当前屏幕截图。

【讨论】:

您可以随时安装 appium,只是它需要先决条件才能运行。 bash_profile里面提到的所有东西【参考方案5】:

抱歉有点乱,请从我的笔记中拿走;

考虑 你有一个位于 .bash_profile 的系统环境 你必须在那里添加 jre jdk 文件

如果你想从 mac 运行适用于 android 和 ios 的 appium,还有 android sdk

你必须安装一个 ui automator

appium中有一个setup dr,你可以检查一下你是否正确安装了appium

这是我为 [android 设备和 ios 设备] 在 ios 上运行 appium 所采取的步骤; 我注意到每一步 某些步骤可能是不必要的 希望对你有帮助

转到终端:

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local 
make install

sudo ln -s /path_to_maven_folder/bin/mvn /usr/bin/mvm

npm ln -s /Users/[your username]/Desktop/Appium/Tools/apache-maven-3.2.5/bin/mvn /usr/bin/mvn

$ mvn –version

下载适用于 iOS 的 android bundle 然后运行命令

tools/android update sdk --no-ui

curl https://www.npmjs.org/install.sh | sh
npm install -g grunt-cli
npm install -g appium
npm install wd

===================================== 打开并编辑 .bash_profile 文件

打开 -e .bash_profile 如果您的计算机路径中没有 .bash_profile 文件,请创建一个。输入以下命令以创建一个新文件。创建后按照步骤 2。

触摸 .bash_profile 第三步

添加并保存 并再次在终端中运行

导出 ANDROID_HOME=/Applications/Appium/Tools/android-sdk-macosx/ 导出 PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools 第 4 步设置 java home 导出 JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home

并将其添加到 bash 配置文件中

安装 Eclipse: 在 Eclipse 中安装测试 ng 添加硒库 添加行家 新建java项目 udid >>在xcode中查找udi 在模拟器中安装应用程序 默认写入 com.apple.Finder AppleShowAllFiles TRUE 去查找器\

在 XCODE 设备中启用 ui 自动化器 设置>>开发人员

安装 brew ruby​​ -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

安装设备 brew install ideviceinstaller

添加 maven jar 文件

更新java到1.8 安装java然后在终端运行这个

export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home”

preference eclipse java 选择搜索添加最新版本

【讨论】:

【参考方案6】:

这里是通过终端在mac上逐步安装appium。之后,您可以使用 appium 服务器从脚本开始运行您的 java 类文件。

在 MAC 中安装 Appium

第一步:安装java JDK:

--> 下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

第 2 步:安装 Android Studio:

--> 下载链接:https://developer.android.com/studio/index.html

滚动到最后找到软件如下:

android-studio-ide-173.4819257-mac.dmg

第 3 步:安装 Home brew

--> 在终端安装 brew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

第 4 步:安装 Node.js

--> 安装 node.js:

下载安装程序:https://nodejs.org/en/download/ 并运行

第 5 步:安装 npm

--> 在终端安装 npm:

brew update
brew install node
npm install -g npm

第6步:设置环境

要在终端中打开 bash_profile,请输入以下命令:

open -e .bash_profile

如果 bash 配置文件不可用,请按照以下命令创建 bash_profile

启动终端

键入“cd ~/”进入您的主文件夹

输入“touch .bash_profile”创建新文件。

要编辑 .bash_profile,您只需键入“open -e .bash_profile”即可在 TextEdit 中打开它。

粘贴以下内容:

export ANDROID_HOME=/Users/user/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH

export JAVA_HOME=$(/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk)
export PATH=$JAVA_HOME/Contents/Home/bin:$PATH
export PATH=/usr/local/bin:/usr/local/sbin:~/bin:$PATH
export PATH=$PATH:/opt/bin:$PATH

保存(Ctrl+S)并退出

注意:由于默认的 Android Studio 和 Java 采用上述路径,如果您更改了路径,请在此处使用正确的版本进行更改

第 7 步:安装 Appium 在终端安装 Appium 命令行:

npm install -g appium@1.6.0-beta1
npm install wd

第 8 步。安装 Carthage

现在输入以下命令进入 WebDriverAgent 并安装 carthage:

cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
brew install carthage
npm i -g webpack

步骤 9. 在命令行中运行 Appium

从上述步骤执行“cd”以退出所有子文件夹,然后键入“appium”

cd
appium

如果一切正常,您应该得到以下行

[Appium] Welcome to Appium v1.6.0-beta1
[Appium] Appium REST http interface listener started on 0.0.0.0:4723

现在您必须从脚本中运行 java 类文件,而必须从脚本启动 appium 服务器,以下是要遵循的步骤

public AppiumDriver<WebElement> setUp() throws Exception 

    builder = new AppiumServiceBuilder();
    //builder.usingAnyFreePort();
    //builder.withIPAddress("0.0.0.0");
    //builder.usingPort(4723);
    builder.withCapabilities(cap);
    builder.withArgument(GeneralServerFlag.SESSION_OVERRIDE);
    builder.withArgument(GeneralServerFlag.LOG_LEVEL,"error");
    builder.withAppiumJS(newFile("/usr/local/lib/node_modules/appium/build/lib/main.js"));
    builder.usingDriverExecutable(new File("/usr/local/bin/node"));
    service = AppiumDriverLocalService.buildService(builder);
service.start();


DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("app", "/Users/user/Documents/yourapp.app");
    capabilities.setCapability("noReset", "false");
    capabilities.setCapability(MobileCapabilityType.VERSION, "12.0");
    capabilities.setCapability(MobileCapabilityType.PLATFORM, "iOS");
    capabilities.setCapability(MobileCapabilityType.UDID,"abcddjkfg...");  
    capabilities.setCapability("bundleId", "com...");
    capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
    capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "user's iPhone");

    driver = new IOSDriver<>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);

    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    return driver;

在终端获取路径

echo $PATH

复制路径并记下

    现在打开您的运行配置 (Eclipse)

    选择你要运行的类文件

    单击环境选项卡

    点击新建

    将变量名设为“PATH”

    现在将复制的路径粘贴到 value 中并保存

这是图片链接供参考

Set Path in eclipse

现在您运行了脚本,您可以看到 appium 服务器在编辑器控制台中启动,应用程序将在设备中启动,您的脚本将运行

注意:对于真实设备 iOS 自动化,您可以使用 appium 桌面 GUI,并且还需要为真实设备 iOS 自动化安装一些东西,请执行以下链接进行配置

https://techsouljours.blogspot.com/2018/08/install-appium-on-mac.html

帖子作者并由https://www.linkedin.com/in/shiv-shankar-siddarth/执行

【讨论】:

您似乎复制了这篇文章:swtestacademy.com/how-to-install-appium-on-mac,但留下了所有有用的图像。我看不到您安装 XCode 的位置。您是否真的测试过这些步骤,或者只是从另一个页面复制它们? - 以上所有步骤都是自己完成的,并发布在我自己的博客上,日期为 2018 年 8 月。 - techsouljours.blogspot.com/2018/08/install-appium-on-mac.html - 可以使用应用商店安装 Xcode - 来自 swtestacademy 发布日期,作者:Onur Baskirt|2019 年 3 月 16 日 @Elmue

以上是关于Appium+Java自动化测试 android混合APP的webview页面截图怎么截?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OS 上设置 Appium 以在 Android 和 iOS 设备上运行来自 JAVA 类的自动化测试

Mac + Appium + Java1.8学习之Android模拟器自动化测试脚本开发以及简易例子

如何用appium测试ios包

移动端自动化测试-Windows-Android-Appium环境搭建

appium简介

Appium-Android环境配置