我一直在尝试使用Selenium sendkeys()而没有成功使用Chrome。我在这里研究了类似的问题,似乎没有成功。我可以生成URL,调用按钮(单击())但是当我尝试在特定文本字段中输入值时,我得到:
“线程中的异常”主“org.openqa.selenium.WebDriverException:未知错误:无法关注元素。”
非常感谢任何帮助。谢谢!
以下是一段代码:
WebElement titleBox = driver.findElement(By.xpath("//*[@id='root']/div/div[2]/div/div/div[2]/div[1]"));
titleBox.click();
titleBox.sendKeys("Test Survey Title");
这是堆栈跟踪:
在端口43615上启动ChromeDriver 2.29.461585(0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b) 仅允许本地连接。 2017年5月26日下午3:42:50 org.openqa.selenium.remote.ProtocolHandshake createSession 信息:检测到的方言:OSS 线程“main”中的异常org.openqa.selenium.WebDriverException:未知错误:无法聚焦元素 (会议信息:chrome = 58.0.3029.110) (驱动程序信息:chromedriver = 2.29.461585(0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),platform = Mac OS X 10.12.5 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:43毫秒 构建信息:版本:'3.4.0',修订版:'未知',时间:'未知' 系统信息:主机:'Enriques-MacBook-Pro.local',ip:'10 .0.0.208',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .12.5' ,java.version:'1.8.0_131' 驱动程序信息:org.openqa.selenium.chrome.ChromeDriver Capabilities [{applicationCacheEnabled = false,rotate = false,mobileEmulationEnabled = false,networkConnectionEnabled = false,chrome = {chromedriverVersion = 2.29.461585(0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),userDataDir = / var / folders / 55 / jxcw642x4593njd3nnysck_80000gn / T / .org.chromium.Chromium .4miVBB},takeHeapSnapshot = true,pageLoadStrategy = normal,databaseEnabled = false,handlesAlerts = true,hasTouchScreen = false,version = 58.0.3029.110,platform = MAC,browserConnectionEnabled = false,nativeEvents = true,acceptSslCerts = true,locationContextEnabled = true, webStorageEnabled = true,browserName = chrome,takesScreenshot = true,javascriptEnabled = true,cssSelectorsEnabled = true,unexpectedAlertBehaviour =}] 会话ID:c0d55118bf095a12cb6e105b581b149e at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:215) 在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:167) 在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:671) 在org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:272) 在org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:96) 在LaunchChrome.main(LaunchChrome.java:36)
答案 0 :(得分:0)
您可以尝试使用actions类跟踪代码,以便在与元素交互之前关注元素:
WebElement titleBox = driver.findElement(By.xpath("//*@id='root']/div/div[2]/div/div/div[2]/div[1]"));
Actions action = new Actions(driver);
action.moveToElement(titleBox).build().perform();
titleBox.click();
titleBox.sendKeys("Test Survey Title");