【问题标题】:Same appium code doesnot work for same app示例 appium 代码不适用于同一个应用
【发布时间】:2018-12-20 12:30:35
【问题描述】:

我正在使用 Appium 自动化应用程序。我有一个基于 react-native 制作的混合应用程序,当没有启动画面时,整个代码都可以工作。如果有启动屏幕,则相同的代码不起作用。我收到Element not found 错误。我尝试过两种语言javaruby。我曾尝试隐藏启动画面,但它在每个构建中都很难替换启动画面以实现自动化。启动画面是在 java 代码上制作的。

【问题讨论】:

  • 你能和我们分享一下错误日志吗?一个问题,虽然没有启动画面,但应用程序是否正在打开?
  • @AlImran 在您发表评论后在上面发布了图片。
  • 你能发布Appium服务器日志吗? IOException 似乎表明会话最终处于错误状态,而不仅仅是找不到元素。
  • @Domestus 在您提出请求后,我在上面的 Appium 服务器日志中发布了问题。
  • 谢谢。不幸的是,在 Appium 服务器日志上看不到任何提及异常的内容。automationName: "UiAutomator2" 有帮助吗?

标签: java ruby appium


【解决方案1】:

在应用启动时尝试使用隐式或显式等待

//implict wait
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

//or use explict wait
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid"))); 

【讨论】:

    【解决方案2】:

    您可以使用 Java 的 Thread.sleep() 方法让您的 Appium 代码等待特定元素显示。

    例子:

    public void sampleTest() throws InterruptedException {
        Thread.sleep(5000L);
    
        // Your sample Appium codes
    }
    

    这将始终允许 Appium 服务器等待您在 Thread.sleep() 方法中传递的时间,直到可以找到所需的元素

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多