2016-11-03 21 views
0

一度ログインしたhttp://www.quikr.com/からログアウトするには以下のコードを書いていますが、Firefoxのブラウザを使用して以下のコードを実行すると、ログアウトリンクをクリックできません。Selenium webdriver 3.0.1を使用してログアウトリンクをクリックできません

同じことをお勧めしますか?

注:同じコードはクロムブラウザでうまく動作します。

私が使用している:

Firefoxのバージョン: 49.0.1 クロームバージョン: 54.0.2840.59メートルセレン バージョン:3.0.1OS: Win10 64ビットをJava: 1.8

+0

firefox https://github.com/mozilla/geckodriver/releasesの最新のgeckoドライバ(v.0.11.1現在)を試してみてください。もう一つの選択肢は、アクションチェーンで試してみてください。ダブルクリックしてください。 –

答えて

2

サインアウトリンクは、ドロップダウンでスクロールした後にのみ表示されます。

First Rule: For clicking on element - that element should be visible on screen. 
Second Rule: To make it visible you need to scroll to that element. 

これを開くと、ユーザーがドロップダウンした後にコードが書き込まれます。

WebElement ele = driver.findElement(By.xpath(".//*[@id='responsiveHeader']/div[1]/div[1]/ul/li[4]/ul/li[9]/a")); // Sign Out element 
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("arguments[0].scrollIntoView(true);", ele); // scrolling upto "Sign Out" element. 
// Quikr has some problem of scrolling in website - so, we have to again scroll to top. 
js.executeScript("scroll(0, 0);"); 
driver.findElement(By.linkText("Sign Out")).click(); 

このコードは正常に動作しています。私は適切にテストしました。あなたが好きでそれがうまくいくなら、Answer

+0

Yojnaのソリューションをありがとう。しかし、私は、コードがchromeで明示的に要素にスクロールせずに正常に動作するという質問があります。そんなことがあるものか? –

+0

クロームドライバとFirefoxのjavascriptの実行方法が異なります。私はドロップダウンのsignOutでスクロールせずにクロムドライバで見ることができます。したがって、クロムドライバでスクロールする必要はありません。あなたのコードは、すべてのブラウザで動作するのに完璧でなければなりません。 – yojna

関連する問題