天天看点

org.openqa.selenium.ElementNotVisibleException: element not visible

org.openqa.selenium.ElementNotVisibleException: element not visible
  (Session info: chrome=)
  (Driver info: chromedriver= (b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT  SP1 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout:  milliseconds
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:48:19 -0700'
System info: host: 'LB-201608250909', ip: '172.16.20.108', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_111'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion= (b88869384d6eb0d5d09729679f934aab9eed), userDataDir=C:\Users\ADMINI~\AppData\Local\Temp\scoped_dir12688_2674}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: fe592e5815d1c9a38c20e9eb5a0bb83f
    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:)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:)
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:)
    at chrome.back_end.mallorder(back_end.java:)
    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.junit.runners.model.FrameworkMethod$runReflectiveCall(FrameworkMethod.java:)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:)
    at org.junit.runners.ParentRunner$run(ParentRunner.java:)
    at org.junit.runners.ParentRunner$schedule(ParentRunner.java:)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:)
    at org.junit.runners.ParentRunner.access$(ParentRunner.java:)
    at org.junit.runners.ParentRunner$evaluate(ParentRunner.java:)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:)

           

解决方案如下:

WebElement shangchengdingdan=driver.findElement(By.xpath("//*[@id='navlist']/li[3]/ul/li[6]/a/span"));
        System.out.println(shangchengdingdan.getText());
        //这两句没什么用处,但是少了这两句话不知道为什么就报错
int ok_size=driver.findElements(By.xpath("//*[@id='navlist']/li[3]/ul/li[6]/a/span")).size();
        driver.findElements(By.xpath("//*[@id='navlist']/li[3]/ul/li[6]/a/span")).get(ok_size-).click();
           

继续阅读