2016-04-28 24 views
1

Javaを使用してセレンスクリプトを作成しています。Seleniumのポイント(X、Y)で要素をクリックできない

私のシナリオでは、選択ボタンとOKボタンがあります。選択ボタンが有効になっていて、最初にページを読み込んだときに[OK]ボタンが無効になっています。

選択ボタンをクリックすると、ポップアップウィンドウが表示されます。次に、ポップアップウィンドウの日付ピッカーから日付を選択します。日付を選択した後、ポップアップウィンドウの[確定]ボタンをクリックします。確認ボタンをクリックすると、ポップアップウィンドウが閉じ、OKボタンが有効になります。

これは私のテストシナリオです。しかし、これを実行すると、OKボタンをクリックした時点でテストが失敗します。

私は多くの研究を行い、自分のコードにスクロールを追加しました。もう一度私のテストは別のポイントで失敗します(日付ピッカーから日付を選択できませんでしたが、これがどうなっているか想像できません)。

ここは私のコードです。

// Click Select button 
driver.findElement(By.xpath("//tr[@id='0']/td[2]/a")).click(); 
System.out.println("User Clicked Select button"); 

// Select Days 
driver.findElement(By.xpath("//div[@id='myModal0']/div/div/div[2]/div/div[2]/div/div/input")).click(); 
driver.findElement(By.xpath("//div[@id='ui-datepicker-div']/table/tbody/tr[5]/td[7]/a")).click(); 
System.out.println("User Selected the days the service is offered"); 

// Click Confirm Button 
driver.findElement(By.xpath("//div[@id='myModal0']/div/div/div[2]/div/div[6]/button")).click(); 
System.out.println("User clicked Confirm Button"); 

// Page Scroll 
JavascriptExecutor jse = (JavascriptExecutor)driver; 
jse.executeScript("window.scrollBy(0,250)", ""); 

// Click OK Button 
driver.findElement(By.xpath("/html/body/div[1]/div[4]/div/div[2]/table/tbody/tr[1]/td[6]/button")).click(); 
System.out.println("User Clicked OK Button"); 

ここに私が持っているエラーメッセージがあります。スレッド内

例外が "メイン" org.openqa.selenium.WebDriverException:要素は、点(1460.7666015625、159.03334045410156)でのクリック可能ではありません。他の要素はクリックを受け取ります: コマンドの継続時間またはタイムアウト:89ミリ秒 ビルド情報:バージョン: '2.53.0'、リビジョン: '35ae25b'、時間: '2016-03-15 17:00:58' システム情報:ホスト: 'ET_LAHIRU'、IP: '192.168.1.4'、os.name: 'Windows 8.1'、os.arch: 'amd64'、os.version: '6.3'、java.version: '1.8.0_25' ドライバ情報:org.openqa.selenium.firefox.FirefoxDriver 機能[{applicationCacheEnabled = true、rotateatable = false、handlesAlerts = true、databaseEnabled = true、version = 45.0.1、platform = WINDOWS、nativeEvents = false、acceptSslCerts = true、 webStorageEnabled = TRUE、= TRUE、browserName = Firefoxの、takesScreenshot = trueを、javascriptEnabled =真、cssSelectorsEnabled = TRUE}] セッションID locationContextEnabled:sun.reflect.NativeConstructorAccessorImplでfea6e350-638c-4cb6-8136-79010aec01a4 組織でsun.reflect.NativeConstructorAccessorImpl.newInstance(不明なソース)sun.reflect.DelegatingConstructorAccessorImpl.newInstanceで (不明なソース)java.lang.reflect.Constructor.newInstanceで (不明なソース) で.newInstance0(ネイティブメソッド) .openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158) at org.openqa.selenium.remote.RemoteWebDriver.execute selrcdemoで(RemoteWebDriver.java:678)org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)で org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85)で .Activities.activities(Activities.java:7 3)selrcdemo.ayubomain.mainで を(ayubomain.java:69)

は、誰かが私にこのための解決策を教えてください。

ありがとうございます。 :)

+0

あなたはどのウェブサイトをテストしていますか?それは公開ですか? – Akbar

+2

これらの 'XPaths'は酷いことです:)絶対' XPath'を使うべきではありません!これはあなたの現在の問題を解決しませんが、将来の問題からあなたを守ります:) – Andersson

+0

@Akbar、申し訳ありませんが公開されていません –

答えて

0

私自身の答えを見つけました。

OKボタンの前にThread.sleep(5000);が追加されました。

私のコードは期待通りに動作します。:)

関連する問題