【问题标题】:Eclipse java appium test debugEclipse java appium 测试调试
【发布时间】:2018-04-05 17:34:15
【问题描述】:

我需要在 Eclipse 中调试用 Java 编写的 selenium/appium 测试。该脚本正在通过 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;

      }

【问题讨论】:

    标签: java android eclipse selenium appium


    【解决方案1】:

    在 eclipse 菜单栏中转到 Run 菜单,请确保未选择“Skip All Breakpoints”选项(如果已选择,则取消选择该选项)。

    【讨论】:

    • 我查过了,没有选中
    【解决方案2】:

    在尝试寻找我的问题的答案时,我遇到了Appium Java REPL,它可用于实时调试 appium java 测试。

    虽然不是用eclipse,但它解决了这里的目的,就是寻找调试java appium test的解决方案。

    我们可以利用 Appium Java REPL 内置驱动程序和命令来启动新会话并查找元素。

    我们还可以启动一个自定义会话(这是我一直在寻找的),这样我们就可以与元素交互,比如使用 TouchAction 类按下按钮(如下所示)。

    确保您的安卓手机已连接并且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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2016-08-15
      • 2016-03-31
      • 2015-07-05
      • 1970-01-01
      • 2013-01-29
      • 2023-03-19
      相关资源
      最近更新 更多