2

Windows 7でSelenium 2.32、Java JDK 1.6.0_07、IE9を使用しています。ここに問題があります

  1. IE WebDriver 32 ビットを使用して、PDF を含む新しいブラウザーを開くリンクをクリックすると、ブラウザー自体で PDF が開かれますが、driver.getWindowHandles() を使用すると、新しいブラウザーが識別されません。常に親ウィンドウのみを返します。IE8 で同じコードを使用すると、まったく問題なく動作し、新しいブラウザの URL を取得できます。

  2. Windows 7とIE9なので、IE Webdriver 64ビットを使用する必要があると考えたので、IE Webdriverバージョン2.32.3(64ビット)を使用しました。この Web ドライバーを使用すると、リンクをクリックすると新しいブラウザーがポップアップしますが、PDF はブラウザーで開かれず、別の PDF ファイルとして開かれます。この場合でも、新しいブラウザーは識別されず、driver.getWindowHandles() は 1 つのブラウザーのみを返します。

PDF ブラウザーだけでなく、通常のブラウザーも driver.getWindowHandles() によって返されません。

新しいブラウザがロードされるまで 10 秒待機しているため、ロード/同期の問題はありません。新しいブラウザを特定し、新しいブラウザの URL を取得したい。助けてください。

4

2 に答える 2

0

ここでの問題は、物事を複雑にしすぎていることです。あなたのコメントから、「典型的な」「推奨される」方法で物事を行っているようには見えません。アドバイスに従っている場合は、少し難しいルートを実行しています。私のアドバイスは、さらに単純化することです。

ただし、あなたの問題について推測すると、「IEDriverServer」を使用しているとのことです。これは、WebDriver を不適切に使用している可能性があることを示しています。グリッド ハブと別のグリッド ノードを使用している場合 (サンプルの起動手順については、こちらのリンクを参照してください: https://gist.github.com/djangofan/5174433 )、WebDriver ではなく RemoteWebDriver を呼び出す必要があります。似ている):

WebDriver driver = new RemoteWebDriver (
     new URL("http://localhost:4444/wd/hub"), 
     DesiredCapabilities.firefox()
);
driver.get("http://www.google.com");
于 2013-06-04T15:43:47.033 に答える