2017-12-21 18 views
0

ページに複数の日付ピッカーを持つことができるページがあります。ウェブ要素の問題をクリックする方法

私は最初のループを実行して、何個の日付ピッカーがあるか調べます。

 List<WebElement> calanders = driver.findElements(By.cssSelector(".c-input-group__addon")); 
     for(int i1=0; i1<calanders.size(); i1++) {  
     System.out.println("how many calanders " +i1); 
     } 

次に、日付ピッカーをループして必要な日付をクリックします。

次に、ピッカーを閉じるためにボタンをクリックする必要があります。これが問題の原因です。

calanders.get(1).findElements(By.xpath("//label[contains(@class,'c-option')]")).click;

どのように私はBy.xpath("//label[contains(@class,'c-option')]の第二の出現をクリックすることができます?

List<WebElement> calanders1 = driver.findElements(By.cssSelector(".c-input-group__addon")); 
    for(int i1=1; i1<calanders1.size(); i1++) {   

    driver.findElements(By.cssSelector(".c-input-group__addon")); 

    calanders1.get(i1).findElement(By.xpath("//label[contains(@class,'c-option')]")).click(); 

    } 
+0

「。」を使用してください。 xpathの前に - By.xpath( ".// label [contains(@ class、 'c-option')]")を追加します。これにより、カレンダー内の閉じるボタンを検索していることが確認されます。 – Grasshopper

+0

関連する 'HTML'(そして' Date Picker'と 'Close'ボタンのスナップ)がなければ、あなたを助けるために何が必要かを推測するのは難しいでしょう。 – DebanjanB

答えて

0
  1. あなたのxpathすることで、ページ上にあるどのように多くの要素F12を経由して検索してみてください。 ロケータによって1つ以上の要素があるため、クリックできないことがあります。
  2. 要素がクリック可能になるまでウェイターを追加できます。 または単にThread.sleep()を追加してください。ただし、それは良い方法ではありません。

p.s.あなたの質問に例外ログを出力する方が良いです。

関連する問題