IEWebdriver:无法单击选项元素。执行JavaScript click函数返回了意外错误

时间:2014-07-31 19:48:47

标签: javascript forms internet-explorer selenium selenium-webdriver

我正在测试包含大量表单的网页。 该页面包含主要形式和几个子表单。 仅当在主窗体中选择特定值时才呈现特定子窗体。 最近,页面被重建,其方式是子表单在静态页面源中不可见。它们是动态注入和渲染的(最有可能是java脚本,但不确定)。

以下是我的测试中的代码示例。测试适用于Firefox和Chrome,但在IE上失败

if (!keyType.isEmpty())
        {
            System.out.println(keyTypeInput.isDisplayed());
            Select keyTypeSelector = new Select(keyTypeInput);          
            keyTypeSelector.selectByVisibleText(keyType);
        }

注意:keyTypeInput是WebElement。 keyTypeInput.isDisplayed()返回true,但selectByIndex,selectByVisibleText等的keyTypeSelector上的任何调用都会引发以下错误:

  

2014-07-31 21:23:34,119 [pool-3-thread-1] INFO   c.a.q.c.​​t.CustomTestListener log - LOG LISTENER:   夹= com.qa.devportal.tests.regression.RunAQuery;浏览器= INTERNET_EXPLORER10;测试= verifyResponse;结果=失败; TESTHOST =本地; SESSIONID = 4a6cb35b-b0ef-4681-a6ea-64eaac64520c; SCREENSHOT =可以'吨   保存屏幕截图。; ERROR = org.openqa.selenium.WebDriverException:不能   单击选项元素。执行JavaScript点击功能返回   意外错误,但无法从Internet返回错误   资源管理器的JavaScript引擎。 (警告:服务器没有提供任何服务   stacktrace information)命令持续时间或超时:110毫秒   构建信息:版本:' 2.41.0',修订版:   ' 3192d8a6c4449dc285928ba024779344f5423c58',时间:' 2014-03-27   11:29:39'系统信息:主持人:' war-lpt-pstepn',ip:' 10.138.1.72',   os.name:' Windows 7',os.arch:' amd64',os.version:' 6.1',   java.version:' 1.7.0_45'会话ID:   4a6cb35b-b0ef-4681-a6ea-64eaac64520c驱动程序信息:   org.openqa.selenium.ie.InternetExplorerDriver功能   [{platform = WINDOWS,javascriptEnabled = true,elementScrollBehavior = 0,   ignoreZoomSetting = false,enablePersistentHover = true,   ie.ensureCleanSession = false,browserName = internet explorer,   enableElementCacheCleanup = true,unexpectedAlertBehaviour = dismiss,   version = 10,ie.usePerProcessProxy = false,cssSelectorsEnabled = true,   ignoreProtectedModeSettings = false,requireWindowFocus = false,   handlesAlerts = true,initialBrowserUrl = http,   ie.forceCreateProcessApi = false,nativeEvents = true,   browserAttachTimeout = 0,ie.browserCommandLineSwitches =,   takeScreenshot = true}] at   sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)     在   sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)     在   sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:526)     在   org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193)     在   org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)     在   org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)     在   org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:79)     在org.openqa.selenium.support.ui.Select.setSelected(Select.java:318)     在   org.openqa.selenium.support.ui.Select.selectByIndex(Select.java:175)     在   com.qa.devportal.pages.ApiExplorerPage.apiRequestParamsFill(ApiExplorerPage.java:290)     在   com.qa.devportal.tests.regression.RunAQuery.verifyResponse(RunAQuery.java:95)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:606)at   org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)     在org.testng.internal.Invoker.invokeMethod(Invoker.java:714)at   org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)at at   org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)at at   org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)     在   org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     在   java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:744)

你有类似的问题吗?

0 个答案:

没有答案