导航:首页 > 编程语言 > appiumjava

appiumjava

发布时间:2023-01-04 03:10:12

Ⅰ appium怎样利用java进行截图

public class ContactsTest {
18 private AppiumDriver driver;
19 @Before
20 public void setUp() throws Exception {
21 //设置apk的路径
22 File classpathRoot = new File(System.getProperty("user.dir"));
23 File appDir = new File(classpathRoot, "apps");
24 File app = new File(appDir, "ContactManager.apk");
25
26 //设置自动化相关参数
27 DesiredCapabilities capabilities = new DesiredCapabilities();
28 capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
29 capabilities.setCapability("platformName", "android");
30 capabilities.setCapability("deviceName", "Android Emulator");
31
32 //设置安卓系统版本
33 capabilities.setCapability("platformVersion", "4.3");
34 //设置apk路径
35 capabilities.setCapability("app", app.getAbsolutePath());
36
37 //设置app的主包名和主类名
38 capabilities.setCapability("appPackage", "com.example.android.contactmanager");
39 capabilities.setCapability("appActivity", ".ContactManager");
40
41 //初始化
42 driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
43 }
44
45 @Test
46 public void addContact(){
47 WebElement el = driver.findElement(By.name("Add Contact"));
48 el.click();
49 List<WebElement> textFieldsList = driver.findElementsByClassName("android.widget.EditText");
50 textFieldsList.get(0).sendKeys("Some Name");
51 textFieldsList.get(2).sendKeys("[email protected]");
52 driver.swipe(100, 500, 100, 100, 2);
53 driver.findElementByName("Save").click();
54 }
55
56 @After
57 public void tearDown() throws Exception {
58 driver.quit();
59 }
60 }

Ⅱ appium-desktop-Setup 找不到Java命令

展开全部 安装Appium在控制台运行npm命令来安装a... 1 创建一个java工程将pom.xml文件放到工... 2 修改AndroidContactsTest.java文件,修... 3 启动模拟器和Appium命令行运行appium,... 4 进入java工程的根目录,运行Maven命令... 5 开发包参考下载地

Ⅲ appium 脚本运行不起来,为啥呀

首先,要保证appium服务正确的启动了,这是第一步

看楼上应该是appium配置出了问题。

appium主要需要配置两个地方,一个是sdk路径,一个是ip+端口号

Ⅳ Appium超时错误连接到驱动程序时问题,怎么解决

问题

1. error: Failed to start an Appium session, err was: Error: Requested a new session but one was in progress


之前的会话没有关闭,然后你又运行了测试实例,也没有设置覆盖.
解决:
1.重新停止appium服务,开启Appium服务
2.在Genarel Setting那里设置覆盖Session,重启Appium

测试结束在AfterClass加driver.quit()

2. error: Failed to start an Appium session, err was: Error: Command failed: C:Windowssystem32cmd.exe /s /c "D:android-sdk-windowsplatform-toolsadb.exe -s adb server version (32) doesn't match this client (36); killing…

wait-for-device"
error: could not installsmartsocketlistener: cannot bind to 127.0.0.1:5037:

没有链接上手机或者模拟器,请确认已经连接成功,重新链接

3. error: Android devices must be of API level 17 or higher. Please change your device to Selendroid or upgrade Android on your device.

手机系统低于4.2,appium不支持4.2.2以下的系统,请换一个手机或者模拟器来测试。

4. Error: Permission to start activity denied.


**activity在清单文件里面没添加Android:exported="true"的话,你不能直接打开对应的activity,需要从启动页activity打开。
exported属性就是设置是否允许activity被其它程序调用**

5. error: Failed to start an Appium session, err was: Error: Activity used to start app doesn't exist or cannot ve launched! Make usre it exists and is launchable activity

要打开的activity不存在,activity路径错误,改为完整正确的activity路径

6. error: Failed to start an Appium session, err was: Error: 'java - version' failed. Error: Command failed: C:Windowssystem32cmd.exe /s /c "java -version"


Java版本错误,请安装最新的版本。

7.> info: [debug] Error: Command failed: C:Windowssystem32cmd.exe /s /c "D:android-sdk-windowsplatform-toolsadb.exe -s 8806a0b0 shell "echo 'ready'"error: unknown host service

链接手机失败,重新链接手机即可,我就是重新拔插了一下usb

Error: Command failed: C:Windowssystem32cmd.exe /s /c "D:android-sdk-windowsplatform-toolsadb.exe -s 8806a0b0 shell "echo 'ping'""

error: unknown host service

adb被突然占用导致,例如你在运行用例的时候运行了模拟器。

8. UIAutomatorViewer提示: Unable to connect to adb. Check if adb is installed correctly

解决,sdk升级到了25产生的问题。

解决方法:

Ⅳ appium长时间运行内存溢出解决方式

下班的时候开始执行,第二天来的时候发现没跑完,appium各种异常,后来看了appium的log发现是内存溢出了,报错如下:

<--- Last few GCs --->

[68480:0x102845000] 22938475 ms: Mark-sweep 4085.6 (4104.9) -> 4085.6 (4104.9) MB, 54.7 / 0.0 ms  (average mu = 0.957, current mu = 0.000) last resort GC in old space requested

[68480:0x102845000] 22938532 ms: Mark-sweep 4085.6 (4104.9) -> 4085.6 (4104.4) MB, 56.5 / 0.0 ms  (average mu = 0.922, current mu = 0.000) last resort GC in old space requested

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x57e8fedbe3d]

Security context: 0x078c1981e6e9 <JSObject>

    1: test [0x78c19809561](this=0x078c4a932069 >,0x078c1f607219 )

    2: truncate [0x78ccb9c31a9] [/Applications/Appium.app/Contents/Resources/app/node_moles/appium/node_moles/lodash/lodash.js:~15070] [pc=0x57e90fd3b85](this=0x078c14...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

 1: 0x10003d035 node::Abort() [/usr/local/bin/node]

 2: 0x10003d23f node::OnFatalError(char const*, char const*) [/usr/local/bin/node]

 3: 0x1001b8e15 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]

 4: 0x100586d72 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]

 5: 0x100590274 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]

 6: 0x100561b25 v8::internal::Factory::NewRawOneByteString(int, v8::internal::PretenureFlag) [/usr/local/bin/node]

 7: 0x100693c38 v8::internal::String::SlowFlatten(v8::internal::Handle, v8::internal::PretenureFlag) [/usr/local/bin/node]

 8: 0x100779c08 v8::internal::RegExpImpl::IrregexpExec(v8::internal::Handle, v8::internal::Handle, int, v8::internal::Handle) [/usr/local/bin/node]

 9: 0x10081c670 v8::internal::Runtime_RegExpExec(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]

10: 0x57e8fedbe3d 

Abort trap: 6

于是上网找了以下的几种方式:

1.使用终端运行appium ,并且把appium内存扩展到4096MB

    我的是:node --max_old_space_size=4096 /Applications/Appium.app/Contents/Resources/app/node_moles/appium/build/lib/main.js -p 4723     

2.logcat.js文件注释push

附上当时eclipse的报错:

1、

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET

Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'

System info: host: 'ruby-Mac.local', ip: 'fe80:0:0:0:69:1eb2:920:7aaf%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '12.0.2'

Driver info: io.appium.java_client.ios.IOSDriver

2、

org.openqa.selenium.NoSuchSessionException: Session does not exist

Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T14:04:26.12Z'

System info: host: 'ruby-Mac.local', ip: 'fe80:0:0:0:69:1eb2:920:7aaf%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '12.0.2'

Driver info: io.appium.java_client.ios.IOSDriver

Ⅵ Appium运行java脚本,报错Activity used to start app doesn't exist or cannot be launched!Make sure

1、在你的程序中,初始化appium设置的appActivity这项,值不对,不是当前被测app启动时调用的activity

可以通过命令行aapt mp badging D:xxx.apk,可以检查到此apk的packageName和activityName

要求先进去androidSDK的build-tools目录下

Ⅶ appium+java处理alertDialog失败

知识点:

1、利用反射,阻止AlertDialog每次的dismiss事件;

在使用AlertDialog的时候,我们设置positive,negative和neutral的button,在点击之后,即使不手动调用dismiss方法,系统都会自动的帮我们dismiss掉了。

但是我这里可能点击了之后,还有一些时间比较长的工作处理之后,才能够dismiss掉此AlertDialog;那么这就是一个问题了。我们先直接看怎么来阻止这个系统的dismiss事件。

话不多述,我们直接先上代码,看看如何操作的,然后在稍微看看源码,一探究竟:

首先是来一个button,设置点击事件,弹出dialog

[java]view plain

Ⅷ appium + java 怎么实现滑动页面到某个元素的位置 · TesterHome

public class MyAndroidDriver extends AndroidDriver {

public MyAndroidDriver(URL remoteAddress, Capabilities desiredCapabilities) {
super(remoteAddress, desiredCapabilities);
}

static String UiScrollable(String uiSelector) {
return "new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView("
+ uiSelector + ".instance(0));";
}

/**
* 滑动到某元素
* @param uiScrollables 符合UiScrollable的string串
* @return
*/
public WebElement scrollToElement(String uiScrollables ) {
String uiScrollables = UiScrollable(uiScrollables );
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
return (uiScrollables);
}
}

看了AndroidDriver源码中scrollTo方法之后的思路,当然了,这边的uiScrollables 需要构造,例如:new UiSelector().className(\"android.widget.TextView\").textContains(\"测试测试\").resourceId(\"com.xx.xxx:id/package_exchange_textview\")

阅读全文

与appiumjava相关的资料

热点内容
dvd光盘存储汉子算法 浏览:757
苹果邮件无法连接服务器地址 浏览:962
phpffmpeg转码 浏览:671
长沙好玩的解压项目 浏览:142
专属学情分析报告是什么app 浏览:564
php工程部署 浏览:833
android全屏透明 浏览:732
阿里云服务器已开通怎么办 浏览:803
光遇为什么登录时服务器已满 浏览:301
PDF分析 浏览:484
h3c光纤全工半全工设置命令 浏览:141
公司法pdf下载 浏览:381
linuxmarkdown 浏览:350
华为手机怎么多选文件夹 浏览:683
如何取消命令方块指令 浏览:349
风翼app为什么进不去了 浏览:778
im4java压缩图片 浏览:362
数据查询网站源码 浏览:150
伊克塞尔文档怎么进行加密 浏览:890
app转账是什么 浏览:163