Selenium webdriver错误..它无法使用selenium webdriver发送密钥

时间:2017-05-26 07:12:00

标签: java selenium webdriver

我正在使用Selenium Webdriver。我已多次搜索并尝试了每个答案,以便成功测试一个案例。我是测试自动化的新手。

问题:当我使用.sendKeys()并点击某个网络元素时出错。我真的很沮丧。我想继续进行测试。请帮我解决这个问题。

并且它还显示一条错误,指出InvalidValueError: initMap is not a function。以前我已成功运行此代码。

我的设置如下:

  • Firefox 53.0
  • Eclipse Juno 32bit
  • Selenium Wevdriver 3.3.1
  • GeckoDriver 16.0
  • logger apache-log4j-1.2.17

这是错误:

  

1495778288530 geckodriver INFO在127.0.0.1:23817上收听   1495778289152 mozprofile :: profile INFO使用配置文件路径   C:\ Users \用户EXTROG〜1 \应用程序数据\本地的\ Temp \ rust_mozprofile.pTb73U1lR7sv   1495778289154 geckodriver :: marionette INFO启动浏览器C:\ Program   带有args []的Files \ Mozilla Firefox \ firefox.exe   1495778289159 geckodriver :: marionette INFO连接木偶   localhost:50245 1495778293537 Marionette INFO在端口50245上收听   2017年5月26日上午11:28:13 org.openqa.selenium.remote.ProtocolHandshake   createSession INFO:检测到的方言:W3C JavaScript错误:,第0行:   未捕获的异常:InvalidValueError:initMap不是函数 INFO   [main](SearchBarTest.java:20) - 搜索栏有错误:预期   [object Undefined] undefined为字符串构建信息:version:   '未知',修订版:'5234b32',时间:'2017-03-10 09:00:17 -0800'   系统信息:主机:'EXTROGENE-PC',ip:'192.168.1.18',os.name:   'Windows 7',os.arch:'x86',os.version:'6.1',java.version:   '1.8.0_121'驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver   功能   [{MOZ:轮廓= C:\用户\ EXTROG〜1 \应用程序数据\本地\ TEMP \ rust_mozprofile.pTb73U1lR7sv,   rotate = false,timeouts = {implicit = 0,pageLoad = 300000,script = 30000},   pageLoadStrategy = normal,platform = ANY,specificationLevel = 0,   moz:accessibilityChecks = false,acceptInsecureCerts = false,   browserVersion = 53.0.3,platformVersion = 6.1,moz:processID = 1896,   browserName = firefox,platformName = windows_nt}]会话ID:   0d78f916-fa2e-4325-8baf-08b8e444d250

这是我的代码:

WebElement element=driver.findElement(By.xpath("//*[@id='serchkey']"));
driver.findElement(By.xpath("//*[@id='serchkey']")).sendKeys(new String("toy"));

2 个答案:

答案 0 :(得分:0)

试试这可能会有效:

WebElement element =driver.findElement(By.id("serchkey"));

javascriptSendKeys(element,"toy");

private void javascriptSendKeys(WebElement yourElement, String yourText){ 
     JavascriptExecutor executor = (JavascriptExecutor)webDriver;
     executor.executorScript("arguments[0].value='" + yourText + "';", yourElement);
}

答案 1 :(得分:0)

以下是您的问题的答案:

通过将测试环境详细信息指定为:

,完成了出色的工作
  • Selenium Webdriver 3.3.1
  • GeckoDriver 16.0

现在,如果您查看geckodriver v0.16.0 here的文档,您会发现标题为:“请注意,geckodriver v0.16.0仅与Selenium 3.4及更高版本兼容。 “

因此,您的问题的解决方案是将您的Selenium从here升级到3.4.0。

如果这回答你的问题,请告诉我。