モーダル iframe 内の要素にアクセスする必要があります。
以下のコードは FireFox ドライバーでは問題なく動作しますが、Chrome では失敗します -
String frameId = null;
List<WebElement> frameSet = driver.findElements(By.tagName("iframe"));
for (WebElement frameName : frameSet){
if(!(frameName.getAttribute("id").isEmpty()) && (frameName.getAttribute("id").contains("DlgFrame"))){
frameId = frameName.getAttribute("id");
}
}
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Logger.info("Switch to Frame - "+frameId);
driver.switchTo().frame(driver.findElement(By.id(frameId)));
Chrome ドライバーは switchTo.frame(<'frameId'>) をサポートしていますか?
Chrome ドライバー使用中のエラー -
org.openqa.selenium.WebDriverException: 不明なコマンドです。オプション: ActivateTab、CaptureEntirePage、CloseTab、DeleteCookie、...
コマンドの実行時間またはタイムアウト: 220 ミリ秒 ビルド情報: バージョン: '2.25.0'、リビジョン: '17482'、時間: '2012-07-18 22:18:01' システム情報: os.name: 'Windows 7'、 os.arch: 'amd64'、os.version: '6.1'、java.version: '1.7.0_05' ドライバー情報: driver.version: RemoteWebDriver セッション ID: cbde65cb0394ee0434b3bb528918ce40 at org.openqa.selenium.remote.ErrorHandler.createThrowable( ErrorHandler.java:188) org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498) org.openqa.selenium com.shn.services.Office365 の org.openqa.selenium.remote.RemoteWebElement.sendKeys(RemoteWebElement.java:87) の .remote.RemoteWebElement.execute(RemoteWebElement.java:244)。sharePointUploadFile(Office365.java:173) at com.shn.test.RunOffice365Test.testSharePointUploadAndDeleteFile(RunOffice365Test.java:55) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:74) at org.apache .maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92) org.apache.maven.surefire.Surefire.run(Surefire.java:180) で org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess (SurefireBooter.java:350) org.apache.maven.surefire.booter.SurefireBooter.main (SurefireBooter.java:1021) で実行 (TestNGXmlTestSuite.java:92) で org.apache.maven.surefire.Surefire.run(Surefire.java:180) で org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350) で org .apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)実行 (TestNGXmlTestSuite.java:92) で org.apache.maven.surefire.Surefire.run(Surefire.java:180) で org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350) で org .apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)