Невозможно взаимодействовать с терминалом через веб-интерфейс через Selenium - PullRequest
0 голосов
/ 13 ноября 2018

Моя постановка проблемы связана с взаимодействием с веб-терминалом через селен

  • Я вошел на один сайт.
  • Я нажал на конкретное приложение Jupyter
  • Я выбрал терминал в приложении Jupyter
  • Я приземлился на пустой черный экран, где мне нужно передать приведенную ниже команду и получить токен доступа.

Команда

curl -X POST https://dummyterminal/oauth/token -k -H 
'authorization: Basic Authcode'  -H 'content-type: application/x-www- 
 form-urlencoded'  -d 
 'username=username&password=#password&grant_type=password' 

Я попытался также захватить весь поток из Selenium IDE, чтобы выяснить, есть ли в терминале какой-либо веб-элемент или нет. Для терминала он показываетвеб-элемент как cssSelector("canvas.xterm-cursor-layer") через Selenium IDE, но когда я работал с тем же веб-элементом, он выдавал ошибку ниже

Я также пытался выполнить поиск в Google, но большинство решений было связано с взаимодействием шпаклевки с кодом Java, что означает взаимодействиенастольного приложения, которое замазано с помощью кода Java, но в моем случае мне нужно взаимодействие с терминалом на веб-основе (что-то вроде замазки) с селеном, чтобы я мог вставить туда свои команды и получить вывод

Я не являюсьсмог вставить указанную выше команду в веб-терминал, получив сообщение об ошибке: -

вывод: -

    org.openqa.selenium.WebDriverException: unknown error: cannot focus element
              (Session info: chrome=70.0.3538.77)
              (Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)
            Command duration or timeout: 70 milliseconds
            Build info: version: '2.53.0', revision: 'XXXX', time: '2016-03-15 16:57:40'
            System info: host: 'XXXX', ip: 'XXXXXX', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_191'
            Driver info: org.openqa.selenium.chrome.ChromeDriver
            Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.36.540470 (e522d04694cxxxx7e21272dbef4f9b818c91), userDataDir=C:\Users\XXXXX[enter image description here][1]\AppData\Local\Temp\scoped_dir3736_24657}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=70.0.3538.77, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=false, acceptInsecureCerts=false, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=}]
            Session ID: f629216f0f8cvvvvvv6f7d95
                at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
                at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
                at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
                at java.lang.reflect.Constructor.newInstance(Unknown Source)
                at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
                at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
                at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
                at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)
                at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:122)
                at getToken.getAccessToken.captureTerminalOutput(getAccessToken.java:52)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
                at org.testng.internal.Invoker.invokeMethod(Invoker.java:639)
                at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:816)
                at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1124)
                at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
                at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
                at org.testng.TestRunner.privateRun(TestRunner.java:774)
                at org.testng.TestRunner.run(TestRunner.java:624)
                at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
                at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
                at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
                at org.testng.SuiteRunner.run(SuiteRunner.java:261)
                at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
                at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
                at org.testng.TestNG.runSuitesSequentially(TestNG.java:1215)
                at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
                at org.testng.TestNG.run(TestNG.java:1048)
                at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)
                at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
                at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)


            ===============================================
                Default test
                Tests run: 1, Failures: 1, Skips: 0
            ===============================================


            ===============================================
            Default suite
            Total tests run: 1, Failures: 1, Skips: 0
            ===============================================
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...