CodeceptJS locator.stringify не является функциональной ошибкой при запуске codecept с Appium

#codeceptjs

#codeceptjs

Вопрос:

У меня есть очень простой скрипт, в котором я пытаюсь заполнить поле имени пользователя на веб-сайте, используя «fillField» в Appium, но я получаю эту ошибку «locator.stringify не является функцией». Я не могу понять, в чем проблема. Приветствуется любая помощь. Вот подробный вывод-

 [1] Starting recording promises
    Emitted | suite.before ([object Object])
  test something
    Emitted | test.before ([object Object])
    Emitted | test.start ([object Object])
    Emitted | step.before (I am on page "https://xxxxxxxxx.com/#login")
    Emitted | step.after (I am on page "https://xxxxxxxxx.com/#login")
    Emitted | step.before (I wait 6)
    Emitted | step.after (I wait 6)
    Emitted | step.before (I fill field "username", "hello@world.com")
    Emitted | step.after (I fill field "username", "hello@world.com")
    Emitted | step.start (I am on page "https://xxxxxxx.com/#login")
    I am on page "https://xxxxxxxxxxx.com/#login"
    Emitted | step.passed (I am on page "https://xxxxxxx.com/#login")
    Emitted | step.finish (I am on page "https://xxxxxxxx.com/#login")
    Emitted | step.start (I wait 6)
    I wait 6
    Emitted | step.passed (I wait 6)
    Emitted | step.finish (I wait 6)
    Emitted | step.start (I fill field "username", "hello@world.com")
    I fill field "username", "hello@world.com"
    [1] Error | TypeError: locator.stringify is not a function
    Emitted | step.failed (I fill field "username", "hello@world.com")
    Emitted | step.finish (I fill field "username", "hello@world.com")
    [1] Error | TypeError: locator.stringify is not a function
    [1] Starting <teardown> session
    Emitted | test.failed ([object Object])
    Emitted | test.finish ([object Object])
    [1] <teardown> Stopping recording promises
 › <screenshotOnFail> Test failed, saving screenshot
 › Screenshot has been saved to /Users/qa-engg/Documents/codeceptJS/appium/output/test_something.failed.png
  ✖ FAILED in 9740ms

    [2] Starting recording promises
    Emitted | test.after ([object Object])
    Emitted | suite.after ([object Object])

-- FAILURES:

  1) IP mobile
       test something:
     locator.stringify is not a function
  

Комментарии:

1. Не могли бы вы передать свою конфигурацию для Appium helper?

Ответ №1:

Похоже, вы обнаружили ошибку, сделанную в декабре 2017 года. Скоро будет сделано исправление.

В качестве обходного пути используйте другие локаторы, а не просто строку «username». Например, CSS, Xpath, строгий локатор.

Комментарии:

1. @Karthik , исправлено в 2.0.8

Ответ №2:

@Evgeny — Спасибо за ваш ответ. Я, наконец, смог свести проблему к нулю при установке webdriverio. У меня были как глобальные, так и локальные установки. Я все удалил и просто выполнил локальную установку, которая, похоже, устранила проблему.