Appium+Java自动化测试 android混合APP的webview页面截图怎么截?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Appium+Java自动化测试 android混合APP的webview页面截图怎么截?相关的知识,希望对你有一定的参考价值。
非webview页面用File scrFile = Drivername.getScreenshotAs(OutputType.FILE)可以正常截图,但是到了webview页面执行到这一句就不动了,哪里都没有报错,一直停在这句代码。
webview页面不能共用这个方法吗?
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
并删除任何node
和node_modules
转到/usr/local/include
并删除任何node
和node_modules
目录
如果您使用brew
安装,请安装node
,然后在您的终端中运行brew uninstall node
检查您的主目录是否有任何本地或 lib 或包含文件夹,并从那里删除任何 node
或 node_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模拟器自动化测试脚本开发以及简易例子