Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 从第三方URL导航到测试URL时出现NoSuchWindowException_Selenium_Internet Explorer 11 - Fatal编程技术网

Selenium 从第三方URL导航到测试URL时出现NoSuchWindowException

Selenium 从第三方URL导航到测试URL时出现NoSuchWindowException,selenium,internet-explorer-11,Selenium,Internet Explorer 11,导航回我的测试URL时出错(在3行代码下面)。这些行中使用的Wait在前3行代码下面。 堆栈跟踪粘贴在等待代码下面 我正在运行Selenium 2.45,在IE11的Win7机器上运行Java driver.navigate().to(testURL); if (!Utils.waitForElementToBeVisibleByLocator(driver, driver.findElement(By.xpath("locat

导航回我的测试URL时出错(在3行代码下面)。这些行中使用的Wait在前3行代码下面。 堆栈跟踪粘贴在等待代码下面

我正在运行Selenium 2.45,在IE11的Win7机器上运行Java

driver.navigate().to(testURL);
if (!Utils.waitForElementToBeVisibleByLocator(driver,                                  
driver.findElement(By.xpath("locator")))) {}

public static boolean waitForElementToBeVisibleByLocator(WebDriver driver,
        By locator) {

    boolean webElement = false;

    try {
        driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
        wait = new WebDriverWait(driver, 60).ignoring(NoSuchElementException.class, StaleElementReferenceException.class).pollingEvery(12,TimeUnit.SECONDS);
        wait.until(ExpectedConditions.presenceOfElementLocated(locator));
        Log.info(locator + " is visible");
        webElement = true;
    } catch (Exception e) {
        Log.error(locator + " is not visible | " + new Object() {
        }.getClass().toString() + " | method " + new Object() {
        }.getClass().getEnclosingMethod().getName());
        Log.debug(e.getMessage());
        webElement = false;
    } finally {
        driver.manage().timeouts().implicitlyWait(Constants.implicitWaitTime, TimeUnit.SECONDS);
    }
    return webElement;
}

org.testng.internal.thread.ThreadExecutionException:   org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException: java.lang.AssertionError: Unable to get browser (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 13 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'K0048471', ip: '10.119.145.52', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_72'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, pageLoadStrategy=normal, ie.usePerProcessProxy=false, ignoreZoomSetting=true, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:9146/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 7d5d46e3-e477-457a-a82f-8bfedaecc0fb
at org.testng.internal.thread.FutureResultAdapter.get(FutureResultAdapter.java:25)
at org.testng.internal.MethodInvocationHelper.invokeWithTimeoutWithNewExecutor(MethodInvocationHelper.java:273)
at org.testng.internal.MethodInvocationHelper.invokeWithTimeout(MethodInvocationHelper.java:231)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:567)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:786)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
Caused by: org.testng.internal.InvokeMethodRunnable$TestNGRuntimeException:   java.lang.AssertionError: Unable to get browser (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 13 milliseconds
    Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
 System info: host: 'K0048471', ip: '10.119.145.52', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_72'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true, ie.forceCreateProcessApi=false, pageLoadStrategy=normal, ie.usePerProcessProxy=false, ignoreZoomSetting=true, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false, elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:9146/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 7d5d46e3-e477-457a-a82f-8bfedaecc0fb
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:49)
at org.testng.internal.InvokeMethodRunnable.run(InvokeMethodRunnable.java:37)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.AssertionError: Unable to get browser (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 13 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26  23:59:50'
System info: host: 'K0048471', ip: '10.119.145.52', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_72'
Driver info: org.openqa.selenium.ie.InternetExplorerDriver
Capabilities [{browserAttachTimeout=0, enablePersistentHover=true,  ie.forceCreateProcessApi=false, pageLoadStrategy=normal,  ie.usePerProcessProxy=false, ignoreZoomSetting=true, handlesAlerts=true, version=11, platform=WINDOWS, nativeEvents=true, ie.ensureCleanSession=false,  elementScrollBehavior=0, ie.browserCommandLineSwitches=, requireWindowFocus=false, browserName=internet explorer, initialBrowserUrl=http://localhost:9146/, takesScreenshot=true, javascriptEnabled=true, ignoreProtectedModeSettings=false, enableElementCacheCleanup=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=dismiss}]
Session ID: 7d5d46e3-e477-457a-a82f-8bfedaecc0fb
at org.testng.Assert.fail(Assert.java:94)
at com.rsi.kma.utility.BaseClass.afterTestMethod(BaseClass.java:113)
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:84)
at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:46)
... 6 more                        

看起来你的代码不正确。为什么要将webElement作为第二个参数传递给
WaitForElementToBeviibleByLocator
?你能更新你的代码吗?你看到了吗: