簡體   English   中英

Eclipse Java Appium測試調試

[英]Eclipse java appium test debug

我需要調試用Java編寫的Eclipse中的硒/應用程序測試。 該腳本正在Eclipse中運行,我可以在設備中看到它,但是遇到一些錯誤,因此我想調試。 在eclipse中,我在腳本中打開了調試透視圖和設置斷點。 然后我從Run-> Debug As-> TestNG Test運行測試,保持其他所有功能不變。

但是代碼並沒有在斷點處停止。 它的行為就像正常運行腳本(沒有調試)。 如何運行以便代碼在斷點處停止然后進入?

不知道這是否有幫助,但是,這就是我啟動驅動程序的方式

public  AndroidDriver InitiateDriver() throws MalformedURLException {
          nodeURL= "http://localhost:4723/wd/hub" ;
          DesiredCapabilities capability =  DesiredCapabilities.android();
          capability.setCapability("BROWSER_NAME", "Android");
          capability.setCapability("VERSION", "7.0");
          capability.setCapability("platformName", "Android");
          capability.setCapability("appPackage", "com.accuweather.android");
          capability.setCapability("appActivity", "com.accuweather.app.SplashScreen");
          capability.setCapability("deviceName", "ec8d4453");

          AppDriver = new AndroidDriver(new URL(nodeURL), capability);
          return AppDriver;

      }

在Eclipse菜單欄中,轉到“運行”菜單,並確保未選中“ Skip All Breakpoints ”( 跳過所有斷點 )選項(如果已選擇,則取消選擇該選項)。

在嘗試尋找問題的答案時,我遇到了Appium Java REPL ,它可用於appium java測試的實時調試。

雖然它不帶有eclipse,但是它在這里解決了目的,這是尋找調試Java appium測試的解決方案。

我們可以利用Appium Java REPL內置的驅動程序和命令來啟動新會話並查找元素。

而且我們還可以啟動一個自定義會話(這就是我一直在尋找的東西),以便我們可以使用TouchAction類(如下所示)與元素進行交互,例如按下按鈕。

確保您的android手機已連接,並且adb devices可以列出您的設備,並且appium服務器已啟動並正在運行。

只需下載jar文件並導航到文件夾並運行

java -jar appium-repl-0.2.0-BETA1.jar

然后做

import static com.mobilebox.repl.Appium.*;

然后像這樣創建自定義會話

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;

import io.appium.java_client.*;

import io.appium.java_client.android.AndroidDriver;

import org.openqa.selenium.WebElement;



DesiredCapabilities capability =  DesiredCapabilities.android();

      capability.setCapability("BROWSER_NAME", "Android");

      capability.setCapability("VERSION", "7.0");

      capability.setCapability("platformName", "Android");

      capability.setCapability("appPackage", "your.app.package");

          capability.setCapability("appActivity", "your.app.activity");


          capability.setCapability("deviceName", "ec8d4453");

nodeURL= "http://localhost:4723/wd/hub" ;

driver = new AndroidDriver(new URL(nodeURL), capability);

TouchAction  touchAction = new TouchAction(driver);

WebElement allow= driver.findElementByAndroidUIAutomator(

"new UiSelector().className(\"android.widget.Button\").text(\"ALLOW\")"

);

touchAction.press(allow).release().perform().press(allow).release().perform();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM