0

同じ要素ジェンキンスには見られないが、日食IDEに同じ要素ジェンキンスで見つかったが、見つからなかったのEclipse IDEで実行すると

を実行したときに見つけ、私は定期的に私のオートメーションでの私のテストケースで呼んでいる一つの方法を持っていますスイート。

この方法は、以下のようなものです:私は、Eclipse IDEでのテストスイートを実行すると

public void FillCarNo(WebDriver d, String CarNo) throws Throwable 
{ 
    //Actiondriver.waitForElement(d, AppointmentBooking.CarRegistration, 5); 
    System.out.println("Before using car registration"); 
    String no= Actiondriver.getAttribute(d, AppointmentBooking.CarRegistration, "value", "Car Registration Number"); 
    Thread.sleep(1000); 
    System.out.println("This"+no+"is"); 
    System.out.println("After using car registration"); 
    if(no.equalsIgnoreCase("")) 
    { 
     System.out.println("Inside car registration if loop"); 
     Actiondriver.waitForElement(d, AppointmentBooking.CarRegistration, 20); 
     Actiondriver.type(d, AppointmentBooking.CarRegistration, CarNo, "Entering Car Number"); 
     System.out.println("After car registration if loop"); 
     Thread.sleep(1000); 
    } 
    else 
    { 
     System.out.println("Car Registration Number already filled"); 
    } 
} 

は、今では成功したスイート全体を実行しますが、私はジェンキンスで同じスイートを実行するときには、要素が見つからないエラーを投げています。

Before using car registration 
Thisis 
After using car registration 
Inside car registration if loop 
Unable to locate element: {"method":"xpath","selector":"//* [@id='carRegistrationNumber']"} 
Command duration or timeout: 33 milliseconds 
For documentation on this error, please visit:  http://seleniumhq.org/exceptions/no_such_element.html 
Build info: version: '2.53.0', revision:  '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46' 
System info: host: 'ROBER-QA', ip: '192.168.137.1', os.name: 'Windows 7',  os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_91' 
Driver info: org.openqa.selenium.firefox.FirefoxDriver 
Capabilities [{applicationCacheEnabled=true, rotatable=false,  handlesAlerts=true, databaseEnabled=true, version=45.0, platform=WINDOWS,  nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true,  locationContextEnabled=true, browserName=firefox, takesScreenshot=true,  javascriptEnabled=true, cssSelectorsEnabled=true}] 
Session ID: 4ec86b11-94e9-48eb-97c7-71b676912654 
*** Element info: {Using=xpath, value=//*[@id='carRegistrationNumber']} 

Uは要素CarRegistrationが.getAttributeの最初の場所で正常に動作しているが、もしループ内で、それは要素が見つかりませんエラーがスローされます。コンソール出力で見ることができるように

要素は以下の通りである:CarRegistration = By.xpath( "// * [@ ID = 'carRegistrationNumber']")で

パブリック静的。

私はこのエラーを取得しています。このエラーが発生すると、残りのテストケースも失敗します。この問題は約2〜3日間は問題ではありません。助けてください!

ありがとうございます。

+0

ループ内でその要素を探す前に、いくつかの秒を待ちます。 – noor

+0

@noor - Thread.sleep(3000)を入れた後でも動作しません。 –

答えて

0

IDは、ロケーティング要素に最も適しています。要素がIDを持っているとして、あなたは以下のようにIDを試すことができます。

public static By carRegistration = By.id("carRegistrationNumber"); 
+0

By.idも機能しませんでした。 –

0

あなたジェンキンスがリモートサーバーからホストされている場合。テスト実行時に自動化フローが何であるかをサーバーで一度確認してください。 待機の仕組みをより明確にするために、このメソッド "waitForElement"を印刷してください。 CarRegistration = By.xpathすることにより、同じロケータ のpublic staticを使用して

( "// * [@ ID = 'carRegistrationNumber']") 要素が最初の場所自体がクリック可能であるために待ってみてください。

WebDriverWait wait = new WebDriverWait(driver,60); 
     wait.until(ExpectedConditions.visibilityOf(CarRegistration)); 
+0

現在、私はジェンキンスについてはスタートアップだから、セットアップ全体が自分のラップトップにあるので、リモートサーバーのポイントはありません。 waitForElementは実際に私のフレームワークのためのカスタムウェイで書かれたexplicitwaitです。 CarRegistrationは、ユーザーが自分の車番号を入力する入力テキストボックスです。 –

+0

@Robert:カスタムは、要素がクリック可能になるのを待つか、要素が表示されるのを待っていますか? 。 EclipseをIDEとして使用している場合は、system.out.println(CarRegistration.isDisplayed())という行を追加して、この時点でブレークポイントを置き、コードをデバッグしてください。これにより、idが実際に画面に表示されるかどうかが保証されます。 –

+0

問題は、ウィンドウのサイズ変更の問題が原因でした。私がdriver.manage()。window()。maximize();によってウィンドウを最大化したとき。それは常にエラーを投げた。だから私はウィンドウのサイズを変更し、私が直面していた問題はもはや存在しませんでした。 寸法d =新しい寸法(1382,744); //現在のウィンドウを指定されたサイズにリサイズ driver.manage()。window()。setSize(d); これは私がWindowsのサイズを設定したものです。 –

1

問題は、ウィンドウのサイズ変更の問題が原因でした。私がdriver.manage()。window()。maximize();によってウィンドウを最大化したとき。それは常にエラーを投げた。だから私はウィンドウのサイズを変更し、私が直面していた問題はもはや存在しませんでした。

Dimension d = new Dimension(1382,744); 
//Resize the current window to the given dimension 
driver.manage().window().setSize(d); 

これは私がウィンドウサイズを設定したもので、完全に正常に動作します。なぜジェンキンズは最大化されたウィンドウで要素を見つけることができないのかわからないが、これは私のために解決する。

+0

良い仕事ロバートDsilva –

+0

私の一日のヒーロー! –

関連する問題