首页 > 解决方案 > 无法通过 Selenium 与基于 Web 的终端交互

问题描述

我的问题陈述与通过 selenium 与基于 Web 的终端交互有关

命令

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 捕获整个流程,以查明终端是否有一些 web 元素对于终端,它 cssSelector("canvas.xterm-cursor-layer")通过 Selenium IDE 显示 web 元素,但是当我使用相同的 web 元素运行时,它在下面抛出错误

我也尝试在 Google 上搜索,但大多数解决方案都是 putty 与 Java 代码的相关交互,这意味着桌面应用程序与 Java 代码的交互,但在我的情况下,我需要与基于 web 的终端(这是一种 putty)与 selenium 交互这样我就可以在那里粘贴我的命令并检索输出

我无法将上述命令粘贴到基于 Web 的终端中,出现以下错误:-

输出:-

    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
            ===============================================

标签: webterminal

解决方案


推荐阅读