7

Windows XPでInternetExplorerDriverを使用して IE7 で Selenium を使用しようとしています。このコードは、互換モード (W7) の Firefox、IE9、さらには IE9 でも問題なく動作します。

HTML:

<HTML xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE></TITLE></HEAD>
<BODY>
<div id="login">chicken</div>
</BODY>

建物の運転手:

private static WebDriver getIE7WebDriver() {
    WebDriver driver = null;
    DesiredCapabilities capabilities;
    capabilities= DesiredCapabilities.internetExplorer();
    capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, false);
    capabilities.setCapability(InternetExplorerDriver.REQUIRE_WINDOW_FOCUS,true);
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
    capabilities.setCapability(CapabilityType.BROWSER_NAME, "internet explorer");
    capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
    capabilities.setCapability(CapabilityType.VERSION, "7");

    System.setProperty("webdriver.ie.driver",(new File("C:\\selenium\\IEDriverServer.exe")).getAbsolutePath());
    try {
        driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return driver;
}

そして、私の#index要素を取得しようとしています:

log.info(driver.getPageSource());

try {
    String value = driver.findElement(By.cssSelector("#login")).toString();
    log.info(value);
}
catch ( Exception e ) {
    log.error(e.toString());
}

ページ ソースは適切にフェッチされますが、要素にアクセスしようとすると、org.openqa.selenium.NoSuchElementException. idとも試しましたXPath

何がうまくいかないのですか?

PS: Windows XP では、IE のセキュリティ モードはありません。

編集:driver.getPageSource()戻り値:

<HTML xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><HEAD><TITLE></TITLE></HEAD>
<BODY>
<DIV id=login>chicken</DIV></BODY></HTML>
4

2 に答える 2

1

わかりました-コメントに従って、ハブに対して実行していないことを指定しましたが、コードではハブを指しています。これと関係があると思います。

このコード ブロックを変更します。

try {
    driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);
} catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

に:

driver = new IEDriver(capabilities);

RemoteWebDriver(new URL("http://localhost:4444/wd/hub")この部分は、テストをリモート ドライバーに向けています。これは、「ハブに接続されているセレン ノード」を意味します。これはハブを使用していないことを既に確認しているため、この回答で問題が解決するはずです。

内訳:

RemoteWebDriver() = Selenium Node that is connected to a hub
ChromeDriver|IEDriver|FirefoxDriver = Local browser session
于 2013-11-25T16:16:00.440 に答える
1

IE 7 の Selenium サーバー バージョン 2.20 以下を試してください。最近、IE 10 ではほとんどのコマンドが機能していたのに IE 8 では機能しないという同様の問題に直面しています。ハブを使用している場合は、Selenium サーバーを実行しているノードで古いバージョン (<2.20) の Selenium が実行されていることを確認してください。

于 2013-11-26T08:53:49.450 に答える