2017-04-13 7 views
0

これは私が実行しようとしていたコードです。カレンダーから次の月を選択しようとしていましたが、できませんでした

driver.get("https://easemytrip.com/"); 
driver.findElement(By.id("ddate")).click(); 
driver.findElement(By.id("img2")).click(); 

カレンダーの翌月をクリックすることはできません。ここにHTMLコードがあります。

<div class="month"> 
 
<div id="dvprevious" class="dvnxt" runat="server"> 
 
<img id="img2" onclick="return FillcalendarV(03,2017);" alt="Arrow" src="img/left.png"/> 
 
</div> 
 
<div class="month2">Apr 2017</div> 
 
<div class="month3"> 
 
<img id="img1" onclick="return FillcalendarV(05,2017);" alt="Arrow" src="img/right.png"/> 
 
</div> 
 
</div>

答えて

0

私の2つの回避策は、アイテムの場所にマウスクリックを強制することでした。

WebElement elem = driver.findElement(By.id("id")); 
    Actions action = new Actions(driver); 
    action.moveToElement(elem).perform(); 
    action.moveToElement(elem).click().perform(); 

または

driver.findElement(By.id("id")).sendKeys(Keys.ENTER); 
0

問題は、それはあなたが簡単に一時停止を必要とするので、レンダリングを取得するには、カレンダーポップアップための第二のかかることです。次の問題は、コンテナDIVによってブロックされているため、> imgをクリックできないことです。だから、私はちょうどコンテナDIVをクリックし、それは働いた。以下のコードは動作します。

driver.get("https://easemytrip.com/"); 
driver.findElement(By.id("ddate")).click(); 
new WebDriverWait(driver, 3).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.month3"))).click(); 
+0

それは働いた。 –

+0

この(または任意の)回答が役に立つと判明した場合は、それをアップしてください。これがあなたの質問に答えた場合は、それを受け入れられた回答としてマークしてください。ありがとう! – JeffC

0

次のコードが有効です。

WebElement ele1 = driver.findElement(By.id("dvfarecal")); 
    ele1.click(); 

    WebDriverWait wait = new WebDriverWait(driver, 5); 
    WebElement ele2 = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//img[@src='img/right.png']"))); 

    ele2.click(); 
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); 

    WebElement date = driver.findElement(By.id("snd_3_10/05/2017")); 
    date.click(); 
関連する問題