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 の場合、同じページの 3 番目のドロップダウンの最初で動かなくなります。私はselenium-server-standalone-2.32.0.jar最新バージョンの を持っています。

4

1 に答える 1

0

この例外は、クリックしようとしている要素が非表示になっていることを意味します。要素をクリックする前に、要素が表示されていることを確認してください。遅延後に要素が表示される場合は、待機を追加できます。

これとは別に、システム構成を確認する必要があり、互換性がある必要があります。

于 2013-07-29T06:34:05.870 に答える