0

我正在使用 selenium webdriver 2.0,我必须自动化一个脚本来运行功能和跨浏览器测试。element not visible当我尝试单击具有该类的元素以.divAdvSearchFeildListName&[data-id='30001']进行下拉时出现错误。

相同的代码适用于某些下拉菜单,可以从同一页面的同一页面中选择国家名称和管辖区。我得到的错误是:

org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with
Command duration or timeout: 47 milliseconds
Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:22:56'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0_21'
Session ID: 2ca283f6-5703-4ef6-b07f-2dee99b531ab
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, databaseEnabled=true, cssSelectorsEnabled=true, javascriptEnabled=true, acceptSslCerts=true, handlesAlerts=true, browserName=firefox, browserConnectionEnabled=true, nativeEvents=true, webStorageEnabled=true, rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true, takesScreenshot=true, version=22.0}]
    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:187)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:79)
    at com.anteambulo.SeleniumJQuery.Prog_Try_Six.automate(Prog_Try_Six.java:1112)
    at com.anteambulo.SeleniumJQuery.Prog_Try_Six.hCueIgn(Prog_Try_Six.java:122)
    at com.anteambulo.SeleniumJQuery.Prog_Try_Six.main(Prog_Try_Six.java:71)
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Element is not currently visible and so may not be interacted with
Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:22:56'
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0_21'
Driver info: driver.version: unknown
    at <anonymous class>.fxdriver.preconditions.visible(file:///C:/DOCUME~1/155366/LOCALS~1/Temp/anonymous8998336689581680973webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:7682)
    at <anonymous class>.DelayedCommand.prototype.checkPreconditions_(file:///C:/DOCUME~1/155366/LOCALS~1/Temp/anonymous8998336689581680973webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10402)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_/h(file:///C:/DOCUME~1/155366/LOCALS~1/Temp/anonymous8998336689581680973webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10421)
    at <anonymous class>.DelayedCommand.prototype.executeInternal_(file:///C:/DOCUME~1/155366/LOCALS~1/Temp/anonymous8998336689581680973webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10426)
    at <anonymous class>.DelayedCommand.prototype.execute/<(file:///C:/DOCUME~1/155366/LOCALS~1/Temp/anonymous8998336689581680973webdriver-profile/extensions/fxdriver@googlecode.com/components/command_processor.js:10366)

我的代码卡在此代码段的第 6 行。正如您在代码中看到的那样,我试图用5px纯黄色边框突出显示该 Web 元素:

   jQuery EntitySearchTypeValue = browser.queryUntil(a1ValEntityDropDownList);
    setCellName(26,0,a1ValEntityDropDownListLabel,sheetReportGeneration);
    hCueExcel(1,1,26,sheetReportGeneration,browser,colNoForDiffBrowsers,EntitySearchTypeValue);
    System.out.println("Login Button found");
   // password.css("border", "none");
    EntitySearchTypeValue.css("border", "5px solid yellow");
    takescreenshot(a1ValFileNamePath,26,colNoForDifferentScreenShots,sheetSnapshotGeneration,workbook);
    ***EntitySearchTypeValue.get().click();***   
   //  browser.findElement(By.className("divAdvSearchFeildListName&[data-id='30001']")).click();
   // browser.getDrv().findElementByClassName("EntitySearchTypeValue&[data-id='30001']").click();
  //  browser.getDrv().findElementByCssSelector(".divAdvSearchFeildListName&[data-id='30001']").click();
   // document.querySelector(".field[data-test]");
   // browser.get()
   // By cssSelector = By.cssSelector(".field[data-test='testytest']");
    // or By.cssSelector(".field[data-test=testytest]")
    // or By.cssSelector(".field[data-test]")
    //bin.findElement(cssSelector).sendKeys("Hello");
    try{

     Thread.sleep(5000L);
    }catch(Exception e){

    }

相同的代码在 Firefox 中运行良好,但稍后在其他浏览器的代码中会卡住。对于 Chrome,它在同一页面中的第三个下拉菜单中卡在开头。我有selenium-server-standalone-2.32.0.jar最新版本。

4

1 回答 1

0

此异常意味着您尝试单击的元素已隐藏。确保元素在单击之前可见。如果元素在延迟后可见,您可以添加等待。

除此之外,您应该检查系统配置,它应该是兼容的。

于 2013-07-29T06:34:05.870 回答