org.openqa.selenium.WebDriverException:未知错误:无法通过Java使用ChromeDriver Chrome和selenium聚焦元素

org.openqa.selenium.WebDriverException:未知错误:无法通过Java使用ChromeDriver Chrome和selenium聚焦元素,java,selenium,google-chrome,webdriver,selenium-chromedriver,Java,Selenium,Google Chrome,Webdriver,Selenium Chromedriver,我正在学习Selenium,我有Chrome版本61.0.3163.100和ChromeDriver版本2.34.522940。我尝试了以下代码: public void adminLogin(){ driver.findElement(By.name("userId")).sendKeys("sysadmin"); } 我的页面正在加载,但用户名字段没有填充“sysadmin”。这就是我得到的错误: Starting ChromeDriver 2.34.522940 (1a7

我正在学习Selenium,我有Chrome版本61.0.3163.100和ChromeDriver版本2.34.522940。我尝试了以下代码:

public void adminLogin(){
        driver.findElement(By.name("userId")).sendKeys("sysadmin");
}
我的页面正在加载,但用户名字段没有填充“sysadmin”。这就是我得到的错误:

Starting ChromeDriver 2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1) on port 31275
  Only local connections are allowed.
  Feb 27, 2019 11:16:44 AM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: OSS
    Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot focus element
      (Session info: chrome=61.0.3163.100)
      (Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
    Command duration or timeout: 0 milliseconds
    Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
    System info: host: 'DWA7DEVOS00170', ip: '10.96.162.167', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_25'
    Driver info: org.openqa.selenium.chrome.ChromeDriver
    Capabilities {acceptSslCerts: true, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 2.34.522940 (1a76f96f66e3ca..., userDataDir: C:\Users\rajos1\AppData\Loc...}, cssSelectorsEnabled: true, databaseEnabled: false, handlesAlerts: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: XP, platformName: XP, rotatable: false, setWindowRect: true, takesHeapSnapshot: true, takesScreenshot: true, unexpectedAlertBehaviour: , unhandledPromptBehavior: , version: 61.0.3163.100, webStorageEnabled: true}
    Session ID: ff3cf91166eddfe1667f931b18ede2ea
        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:214)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
        at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40)
        at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80)
        at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44)
        at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:164)
        at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
        at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:279)
        at org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:100)
        at pulse.tpr.LoginInterface.adminLogin(LoginInterface.java:24)
        at pulse.tpr.LoginInterface.main(LoginInterface.java:34)

任何帮助都将不胜感激。

在使用
sendkeys()
之前,请尝试使用
操作
类首先关注元素,如下所示:

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.name("userId")));
actions.click();
actions.sendKeys("sysadmin");
actions.build().perform();

他面临着类似的问题。您使用的是过时的chromedriver版本。将chromedriver更新至最新版本,并相应地设置webdriver属性

WebDriver browser = new ChromeDriver();
String path_to_driver = "C:\\blah\\blah\\chromedriver.exe"
System.setProperty("webdriver.chrome.driver", path_to_driver);
接下来,您需要将selenium库升级到最新版本,因为selenium与Chromedriver存在向后不兼容问题

  • 最新的Selenium版本是3.141.59
  • 最新的Chromedriver版本是:73.0.3683.20
ChromeDriver下载链接:

Selenium下载链接:

注意:

请确保在导航到后等待一段时间 预期的网址。原因是,元素在 一定的时间流逝。在这种情况下,webdriver在 这一次,driver.findElement()将无法获取web元素

此错误消息

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot focus element
  (Session info: chrome=61.0.3163.100)
  (Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'DWA7DEVOS00170', ip: '10.96.162.167', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver
…表示ChromeDriver无法聚焦所需元素


您的主要问题是所使用的二进制文件版本之间的不兼容,如下所示:

  • 您使用的是chromedriver=2.34
  • 您使用的是chrome=61.0
  • 但是您的JDK版本是1.8.0_25,它非常古老古老
因此,JDK v8u25、ChromeDriver v2.34和Chrome浏览器v61.0之间存在明显的不匹配


解决方案
  • 将JDK升级到最新级别

其他考虑事项 根据最佳做法

  • 将ChromeDriver升级到当前级别
  • 将Chrome版本升级到当前的Chrome v71-73级别。()
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目
  • 如果您的基本Web客户端版本太旧,请卸载它并安装最新的GA和Web客户端发布版本
  • 重新启动系统
  • 执行
    @测试
  • 始终在
    tearDown(){}
    方法中调用
    driver.quit()
    ,以优雅地关闭和销毁Web驱动程序和Web客户端实例

这是脚本的全部代码吗?你能上传你试图使用的网页的HTML吗?
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot focus element
  (Session info: chrome=61.0.3163.100)
  (Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 6.1.7601 SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 0 milliseconds
Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
System info: host: 'DWA7DEVOS00170', ip: '10.96.162.167', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver