導航:首頁 > 編程語言 > 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光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:958
phpffmpeg轉碼 瀏覽:669
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:483
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:777
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:148
伊克塞爾文檔怎麼進行加密 瀏覽:889
app轉賬是什麼 瀏覽:163