Martin
2016-10-24 09:07:46 UTC
Hello!
I am trying to write a test for my online shopping web page where I want to
execute javascript that enables some discounts. Executing the scripts
through the browser console works perfectly, however when I try to execute
them using java and selenium, I get an error telling me that the js method
is undefined (which it is, I get the same message in the browser console,
but the browser just ignores it and executes it anyway. With Selenium it
crashes and does not execute the script).
I can unfortunately not change the javascript/html code itself, so I would
need to fix it just using Java/Selenium.
Is there a way to tell Selenium to ignore the Java Script errors and
continue executing the scripts anyway?
The relevant code that gives me the error is the following:
*public WebDriver driver;*
*driver = new ChromeDriver();*
*JavascriptExecutor js = (JavascriptExecutor) driver; *
*js.executeScript("addFakeRule(\"7914\", {isNew: true});");*
The error I receive which makes the test case quit without finishing is:
*org.openqa.selenium.WebDriverException: unknown error: addFakeDataRule is
not defined*
I am using the Selenium-java-3.0.0 and the latest Chrome driver, and the
java code is written using latest Eclipse Neon on Windows 8.1.
Have been searching the web for hours and can't find a way to ignore the JS
error and just proceed with the script execution.
Any help is truly appreciated!
Here is the complete error/stacktrace that I am gettin*g:*
*org.openqa.selenium.WebDriverException: unknown error: addFakeRule is not
defined*
* (Session info: chrome=54.0.2840.71)*
* (Driver info: chromedriver=2.24.417431
(9aea000394714d2fbb20850021f6204f2256b9cf),platform=Windows NT 6.3.9600
x86_64) (WARNING: The server did not provide any stacktrace information)*
*Command duration or timeout: 40 milliseconds*
*Build info: version: 'unknown', revision: '350cf60', time: '2016-10-13
10:43:56 -0700'*
*System info: host: 'MMA-CZC3094Z8B', ip: '10.19.210.101', os.name:
'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version:
'1.8.0_111'*
*Driver info: org.openqa.selenium.chrome.ChromeDriver*
*Capabilities [{applicationCacheEnabled=false, rotatable=false,
mobileEmulationEnabled=false, networkConnectionEnabled=false,
chrome={chromedriverVersion=2.24.417431
(9aea000394714d2fbb20850021f6204f2256b9cf),
userDataDir=c:\temp\scoped_dir3536_18951}, takesHeapSnapshot=true,
pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true,
hasTouchScreen=false, version=54.0.2840.71, platform=WIN8_1,
browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true,
locationContextEnabled=true, webStorageEnabled=true, browserName=chrome,
takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]*
*Session ID: 6ba9f4715531bdd6ae439ac07665e101*
* 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:216)*
* at
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)*
* at
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)*
* at
org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:537)*
* at IKEA_Test.TestCases.testDiscounts(TestCases.java:89)*
* at IKEA_Test.InitiateTest.testDiscounts(InitiateTest.java:57)*
* 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:100)*
* at org.testng.internal.Invoker.invokeMethod(Invoker.java:646)*
* at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:811)*
* at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1137)*
* at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)*
* at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)*
* at org.testng.TestRunner.privateRun(TestRunner.java:753)*
* at org.testng.TestRunner.run(TestRunner.java:607)*
* at org.testng.SuiteRunner.runTest(SuiteRunner.java:368)*
* at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:363)*
* at org.testng.SuiteRunner.privateRun(SuiteRunner.java:321)*
* at org.testng.SuiteRunner.run(SuiteRunner.java:270)*
* at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)*
* at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)*
* at org.testng.TestNG.runSuitesSequentially(TestNG.java:1284)*
* at org.testng.TestNG.runSuitesLocally(TestNG.java:1209)*
* at org.testng.TestNG.runSuites(TestNG.java:1124)*
* at org.testng.TestNG.run(TestNG.java:1096)*
* at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)*
* at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)*
* at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)*
I am trying to write a test for my online shopping web page where I want to
execute javascript that enables some discounts. Executing the scripts
through the browser console works perfectly, however when I try to execute
them using java and selenium, I get an error telling me that the js method
is undefined (which it is, I get the same message in the browser console,
but the browser just ignores it and executes it anyway. With Selenium it
crashes and does not execute the script).
I can unfortunately not change the javascript/html code itself, so I would
need to fix it just using Java/Selenium.
Is there a way to tell Selenium to ignore the Java Script errors and
continue executing the scripts anyway?
The relevant code that gives me the error is the following:
*public WebDriver driver;*
*driver = new ChromeDriver();*
*JavascriptExecutor js = (JavascriptExecutor) driver; *
*js.executeScript("addFakeRule(\"7914\", {isNew: true});");*
The error I receive which makes the test case quit without finishing is:
*org.openqa.selenium.WebDriverException: unknown error: addFakeDataRule is
not defined*
I am using the Selenium-java-3.0.0 and the latest Chrome driver, and the
java code is written using latest Eclipse Neon on Windows 8.1.
Have been searching the web for hours and can't find a way to ignore the JS
error and just proceed with the script execution.
Any help is truly appreciated!
Here is the complete error/stacktrace that I am gettin*g:*
*org.openqa.selenium.WebDriverException: unknown error: addFakeRule is not
defined*
* (Session info: chrome=54.0.2840.71)*
* (Driver info: chromedriver=2.24.417431
(9aea000394714d2fbb20850021f6204f2256b9cf),platform=Windows NT 6.3.9600
x86_64) (WARNING: The server did not provide any stacktrace information)*
*Command duration or timeout: 40 milliseconds*
*Build info: version: 'unknown', revision: '350cf60', time: '2016-10-13
10:43:56 -0700'*
*System info: host: 'MMA-CZC3094Z8B', ip: '10.19.210.101', os.name:
'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version:
'1.8.0_111'*
*Driver info: org.openqa.selenium.chrome.ChromeDriver*
*Capabilities [{applicationCacheEnabled=false, rotatable=false,
mobileEmulationEnabled=false, networkConnectionEnabled=false,
chrome={chromedriverVersion=2.24.417431
(9aea000394714d2fbb20850021f6204f2256b9cf),
userDataDir=c:\temp\scoped_dir3536_18951}, takesHeapSnapshot=true,
pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true,
hasTouchScreen=false, version=54.0.2840.71, platform=WIN8_1,
browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true,
locationContextEnabled=true, webStorageEnabled=true, browserName=chrome,
takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]*
*Session ID: 6ba9f4715531bdd6ae439ac07665e101*
* 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:216)*
* at
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)*
* at
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)*
* at
org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:537)*
* at IKEA_Test.TestCases.testDiscounts(TestCases.java:89)*
* at IKEA_Test.InitiateTest.testDiscounts(InitiateTest.java:57)*
* 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:100)*
* at org.testng.internal.Invoker.invokeMethod(Invoker.java:646)*
* at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:811)*
* at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1137)*
* at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)*
* at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)*
* at org.testng.TestRunner.privateRun(TestRunner.java:753)*
* at org.testng.TestRunner.run(TestRunner.java:607)*
* at org.testng.SuiteRunner.runTest(SuiteRunner.java:368)*
* at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:363)*
* at org.testng.SuiteRunner.privateRun(SuiteRunner.java:321)*
* at org.testng.SuiteRunner.run(SuiteRunner.java:270)*
* at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)*
* at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)*
* at org.testng.TestNG.runSuitesSequentially(TestNG.java:1284)*
* at org.testng.TestNG.runSuitesLocally(TestNG.java:1209)*
* at org.testng.TestNG.runSuites(TestNG.java:1124)*
* at org.testng.TestNG.run(TestNG.java:1096)*
* at
org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)*
* at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)*
* at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)*
--
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-users+***@googlegroups.com.
To post to this group, send email to selenium-***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/4a2a88e0-a778-4564-80ae-a6298e8246ef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups "Selenium Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to selenium-users+***@googlegroups.com.
To post to this group, send email to selenium-***@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/selenium-users/4a2a88e0-a778-4564-80ae-a6298e8246ef%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.