#xpath #automation #cypress
#cypress #cypress-xpath
Вопрос:
Запускаю Cypress и наткнулся на использование xpath в Cypress, и я пытаюсь использовать следующий код в файле .js.
/// <reference types = "cypress" />
describe ("Test Contact us form",()=>{
it("Should be able to submit the form", ()=>{
cy.visit('some url');
cy.xpath('//a[contains (@href, "contact")]').click();
});
})
Вот как выглядит мой путь к каталогу xpath node_modules
Projectsnode_modulesxpath
Вот мой index.js
// Alternatively you can use CommonJS syntax:
// require('./commands')
require('xpath')
Вот мой package.json
{
"name": "projects",
"version": "1.0.0",
"description": "test",
"main": "index.js",
"scripts": {
"test": "Thisistest"
},
"author": "",
"license": "ISC",
"devDependencies": {
"cypress": "^5.2.0",
"xpath": "0.0.29"
}
}
Вот фрагмент пакета-lock.json
"xpath": {
"version": "0.0.29",
"resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.29.tgz",
"integrity": "some key",
"dev": true
},
После запуска теста я получаю следующую ошибку компиляции.
Это ошибка типа.
cy.xpath не является функцией
Кажется, это небольшая конфигурация. Однако выполните точные действия, указанные в https://github.com/cypress-io/cypress-xpath#readme
Ответ №1:
Я удалил и заново настроил cypress и xpath снова, используя npm через git bash, и это сработало.
Ранее у меня была настройка с использованием node.js командная строка. После установки xpath с использованием той же команды npm xpath был успешно загружен, однако имя каталога внутри node_modules было просто xpath вместо cypress-xpath . Теперь, хотя у меня был require (‘xpath’) в файле index.json, он по-прежнему не мог обнаружить xpath.
Ответ №2:
[Обновлено для Cypress версии 10.9.0 в 2022 году]
Используйте ссылку ниже для установки: cypress-xpath плагин
https://www.npmjs.com/package/cypress-xpath
Шаг 1: Установите плагин XPath, используя приведенную ниже команду
npm install cypress-xpath
Шаг 2 Добавьте эту строку в e2e.js в папке поддержки
require('cypress-xpath');
Шаг 3 Добавьте свой xpath в метод cy.xpath, как показано ниже:
cy.xpath("//input[@name='userName']").should("be.visible");
Пожалуйста, убедитесь, что вы получаете код intellisense, подобный этому (см. Прилагаемое Изображение), после успешной установки плагина cypress-xpath.
Ответ №3:
Я столкнулся с той же проблемой. затем я изменил ссылочные типы с cypress на cypress-xpath следующим образом
///reference types = 'cypress-xpath'
и проблема решена.
Это может быть полезно для вас.
Ответ №4:
Я загрузил cypress-xpath и обновил файл конфигурации с помощью requirements(‘cypress-xpath), а затем попробовал, и это сработало