qmetry / qaf

Quality Automation Framework for web, mobileweb, mobile native and rest web-service using Selenium, webdrier, TestNG and Java Jersey
https://qmetry.github.io/qaf
MIT License
253 stars 137 forks source link

Unable to Create Driver Instance for iexplorer #238

Closed Khyathikonala closed 5 years ago

Khyathikonala commented 5 years ago

When we are trying to our script on IE browser we are getting the following error: TestNG: Driver: iExplorerDriver IE version: 11.7 i'm using Driver name iExplorerDriver i did all setting option in InternetOption driver.name=iExplorerDriver We are Using env.propertise:src/main/resources/ie iExplorer.capabilities.ignoreProtectedModeSettings=true iExplorer.capabilities.ignoreZoomSetting=true iExplorer.capabilities.nativeEvents:false iExplorer.capabilities.acceptSslCerts:true

TestNG: Direct Driver Connect com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for iexplorer: java.lang.NoSuchMethodException: org.openqa.selenium.edge.EdgeDriver.(java.net.URL, org.openqa.selenium.Capabilities) Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z' System info: host: 'INLN50942421A', ip: '192.168.246.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144' Driver info: driver.version: unknown at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:429) at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.getDriver(UiDriverFactory.java:400) at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.access$5(UiDriverFactory.java:396) at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriver(UiDriverFactory.java:204) at com.qmetry.qaf.automation.ui.UiDriverFactory.get(UiDriverFactory.java:73) at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:564) at com.qmetry.qaf.automation.core.QAFTestBase$DriverInitExpectedCondition.apply(QAFTestBase.java:1) at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:238) at com.qmetry.qaf.automation.core.QAFTestBase.init(QAFTestBase.java:474) at com.qmetry.qaf.automation.core.QAFTestBase.getUiDriver(QAFTestBase.java:254) at com.qmetry.qaf.automation.ui.WebDriverTestBase.getDriver(WebDriverTestBase.java:47) at com.quantum.steps.GoogleStepDefs.I_am_on_Google_Search_Page(GoogleStepDefs.java:20) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.qmetry.qaf.automation.step.JavaStep.doExecute(JavaStep.java:159) at com.qmetry.qaf.automation.step.BaseTestStep.execute(BaseTestStep.java:149) at com.qmetry.qaf.automation.step.StringTestStep.execute(StringTestStep.java:134) at com.qmetry.qaf.automation.step.client.Scenario.execute(Scenario.java:173) at com.qmetry.qaf.automation.step.client.DataDrivenScenario.scenario(DataDrivenScenario.java:95) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) at org.testng.internal.Invoker.invokeMethod(Invoker.java:645) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177) 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:781) at org.testng.TestRunner.run(TestRunner.java:635) at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) at org.testng.SuiteRunner.access$000(SuiteRunner.java:39) at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:421) at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.openqa.selenium.WebDriverException: java.lang.NoSuchMethodException: org.openqa.selenium.edge.EdgeDriver.(java.net.URL, org.openqa.selenium.Capabilities) Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z' System info: host: 'INLN50942421A', ip: '192.168.246.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_144' Driver info: driver.version: unknown at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriverObj(UiDriverFactory.java:256) at com.qmetry.qaf.automation.ui.UiDriverFactory.access$5(UiDriverFactory.java:224) at com.qmetry.qaf.automation.ui.UiDriverFactory$Browsers.standardConnect(UiDriverFactory.java:424) ... 40 more Caused by: java.lang.NoSuchMethodException: org.openqa.selenium.edge.EdgeDriver.(java.net.URL, org.openqa.selenium.Capabilities) at java.lang.Class.getConstructor0(Class.java:3082) at java.lang.Class.getConstructor(Class.java:1825) at com.qmetry.qaf.automation.ui.UiDriverFactory.getDriverObj(UiDriverFactory.java:242) ... 42 more Unable to create driver instance in 2nd attempt with retry timeout of 60 seconds. You can check/set value of 'driver.init.retry.timeout' appropriately to set retry timeout on driver initialization failure.com/thoughtworks/selenium/CommandProcessor

cjayswal commented 5 years ago

Please refer #127 #148 #120 #223 and user group post Unable to launch firefox and IE browsers using QAF2.1.12

Khyathikonala commented 5 years ago

Hi cjayswal im using QAF Version 2.1.13 and Selenium version is 3.6.0 like this I'm Sending Properties in to Application Properties File driver.name = iExplorerDriver system.webdriver.ie.driver = local Machine Path of IEDriverServer Other Additional capabilities of Driver iExplorer.additional.capabilities={'ignoreProtectedModeSettings':true, 'ignoreZoomSetting':true}

in TestNg.xml File I'm Sending Parameter Like This sample file.

<test name="Web  IE Test" enabled="true">
    <parameter name="driver.capabilities.platformName" value="Windows"></parameter>
    <parameter name="systemName" value="web"></parameter>
    <parameter name="driver.capabilities.browserName" value="internet explorer"></parameter>

but i'm got same Error above Error Only i referred mention number Also but it didn't launch IE Browser

Regards Ravi

cjayswal commented 5 years ago

From exception it looks something wrong in your configuration: java.lang.NoSuchMethodException: org.openqa.selenium.edge.EdgeDriver.(java.net.URL, It's taking edge instead of IE. Also make sure that you have provided correct version of iedriverserver. You can first try with blank/sample project to make sure you have everything working fine in you local environment with the available versions of driver, browser and driver executable. I would request you post it in users group instead of in git.

Khyathikonala commented 5 years ago

@SuppressWarnings("deprecation") public static void main(String[] args) { DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true); capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); System.setProperty("webdriver.ie.driver", "C:\Users\c5257429\Videos\qaf\IEDriverServer.exe"); iExplorerDriver = new InternetExplorerDriver(capabilities); iExplorerDriver.get("https://google.com"); QAFTestBase.pause(45000);

    DeviceUtils.getQAFDriver().findElement(By.name("q")).assertAttribute("name", "q", "searchBox");

This Code Working Fine , I tried this code sample java Application it launch the IE browser where is our mistake we don't know driver.name = iExplorerDriver system.webdriver.ie.driver = local Machine Path of IEDriverServer Other Additional capabilities of Driver iExplorer.additional.capabilities={'ignoreProtectedModeSettings':true, 'ignoreZoomSetting':true} we are Tired different levels but it not launch IE browser also.

cjayswal commented 5 years ago

Try iexplorer instead of iExplorer, For instance,

iexplorer.additional.capabilities={'ignoreProtectedModeSettings':true, 'ignoreZoomSetting':true}
arcillakelvis commented 5 years ago

Hi @cjayswal ,

Why does when I use internet explorer it points to Edgedriver on the exception? Error: com.qmetry.qaf.automation.core.AutomationError: Unable to Create Driver Instance for iexplorer: java.lang.NoSuchMethodException: org.openqa.selenium.edge.EdgeDriver

<parameter name="driver.name" value="iexplorerDriver" /> <parameter name="iexplorer.additional.capabilities" value = "{'ignoreProtectedModeSettings':true, 'ignoreZoomSetting':true}" /> <parameter name="system.webdriver.ie.driver" value="src/main/resources/driver/IEDriverServer.exe" />

cjayswal commented 5 years ago

it means, from somewhere it takes driver.name property value as edgeDriver or browserName capability value MicrosoftEdge instead of internet explorer.

cjayswal commented 5 years ago

For further queries or question post in users group or stackoverflow with qaf tag