Селен "Нераспознанная команда: действия" - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь сделать щелчок мышью по позиции.Тем не менее, я не могу заставить действие работать всегда, получая следующее сообщение.Я воспроизвел проблему, пытаясь дважды щелкнуть на главной панели поиска google.com.

Для получения справки см. https://nodejs.org/en/docs/inspector (узел: 38864) UnhandledPromiseRejectionWarning: UnknownCommandError: Нераспознанная команда: действияwarning.js: 18 в buildRequest (c: \ GitRepo \ MMT4 \ src \ javascript \ Web.Tests \ node_modules \ selenium-webdriver \ lib \ http.js: 375: 9) в Executor.execute (c: \ GitRepo \ MMT4\ src \ javascript \ Web.Tests \ node_modules \ selenium-webdriver \ lib \ http.js: 455: 19) в Driver.execute (c: \ GitRepo \ MMT4 \ src \ javascript \ Web.Tests \ node_modules \ selenium-webdriver\ lib \ webdriver.js: 696: 38) at process._tickCallback (internal / process / next_tick.js: 68: 7) (узел: 38864) UnhandledPromiseRejectionWarning: необработанное отклонение обещания.Эта ошибка возникла либо из-за того, что внутри асинхронной функции не был выполнен блок catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(id отклонения: 3) warning.js: 18 (узел: 38864) [DEP0018] DeprecationWarning: Необработанные отклонения обещания устарели.В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.

импортировал пакеты с npm

"devDependencies": {
    "@types/node": "^10.12.0"
},
"dependencies": {
    "chromedriver": "^2.43.0",
    "selenium-webdriver": "^4.0.0-alpha.1"
}

Согласнодокументация, которую я нашел здесь, должна работать https://seleniumhq.github.io/selenium/docs/api/javascript/index.html https://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/input_exports_Actions.html

В Интернете также найден другой пример, поддерживающий его, но он не может увидеть, чего не хватает в этом базовом примере:

"use strict";
require('chromedriver');
const { Builder, By, Key, until, ActionSequence } = require('selenium-webdriver');
(async function run() {
    let driver = await new Builder().forBrowser('chrome').build();
    try {
        await driver.get('http://www.google.com');

        await driver
            .actions()
            .doubleClick(By.id('lst-ib'))
            .perform();
    }
    finally {
        await driver.quit();
    }
})();

Также протестирован в проекте с транспортиром, и он, кажется, работает, но я не понимаю, зачем мне нужен транспортир в этом проекте, так как он не использует Angular.

Спасибо

1 Ответ

0 голосов
/ 11 декабря 2018

Я нашел решение

Я попытался понизить Selen-WebDriver версии 3.6.0

тогда, возможно, это возможно, работает и метод keydown только 4 способа выполнения (мне нужноиспользуйте клавиатуру!)

key.CONTROL
key.SHIFT
key.ALT
key.COMMAND

, поэтому, если вам нужно другое действие клавиатуры, используйте метод sendKeys (я использовал клавишу Tab)

здесь я ссылаюсь на ссылку https://github.com/SeleniumHQ/selenium/issues/5428

...