2017-07-10 8 views
1

私はwhenページのサブメニュー項目をクリックしようとしています。私はアクションを実行するために次のコードを使用しました。FirefoxでSelenium Webdriverテストを実行していません

WebElement mainMenu = driver.findElement(By.xpath(".//*[@class='main-menu']")) 

    WebElement subMenu = driver.findElement(By.xpath(".//*[@class='sub-menu-item2']")) 

    mainMenu.click(); 
    actions.moveToElement(mainMenu).build().perform(); 
    subMenu.click(); 

このコードはChromeブラウザを使用している間は正常に動作しますが、Firefoxでは動作しません。

+0

どのようなエラーが表示されますか? – derloopkat

+0

@derloopkat私のテストによれば、サブメニュー項目をクリックすると、ロードされているページに要素を検証する必要があります。サブメニュー項目をクリックすることができないので、テストでは、検証しようとしている要素を見つけることができません。私はテストの前のステップで立ち往生しました – SKV

+0

あなたのコードでタイムアウトを増やし、サブメニューをクリックする前にウィンドウサイズを最大にしてください。おそらくデフォルトのウィンドウサイズはFFでは異なり、要素が表示されない別のレイアウトが強制されます。これらは、Seleniumにはない要素を引き起こす2つの最も一般的な問題です。問題が解決しない場合は、htmlまたはリンクを追加してください。 – derloopkat

答えて

0

私はgeckodriverがまだアクション "https://github.com/mozilla/geckodriver/issues/233"を実装していないことを知りましたが、これは私のテストを実行するとFirefoxが動作しないことを証明しています。

アクションを使用する代わりに、私はJavaScriptExecutorを使用しました。ここで私が使用したコマンドは完全に正常に機能しました。

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", mainMenu); 
subMenu.click(); 

これはChromeブラウザとFirefoxブラウザの両方で問題なく動作します。

+0

できるだけ戻って答えとして受け入れるようにしてください。ありがとう! – JeffC

+0

@JeffC確約致します – SKV

関連する問題