セレンのプログラムを実行しているときにセレンを学んでいます(datepickerから予定される日付を選択しています)。ページ文書。私はいくつかのオンラインソリューションを行ってきましたが、同時に動作していません。私は私のプログラムを実行している間DOMの要素を見つけることはできないと思います。解決策を教えてください。前もって感謝します。古い要素の参照:要素がページ文書に添付されていません。クロムブラウザのセレンのwebdriver
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class skyscanner_datepicker
{
@Test
public void calender_func() throws InterruptedException
{
String expected_date = "January 2018";
String expected_day = "15";
System.setProperty("webdriver.chrome.driver", "D://rakesh//software//selenium browser//chrome 2.30//chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.skyscanner.co.in/");
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.findElement(By.id("js-depart-input")).click();
Thread.sleep(3000);
if(driver.findElement(By.xpath("//div[@class='popover skyscanner-datepicker depart']//span[@class='current']")).getText().equals(expected_date))
{
System.out.println("Date selected in if condition");
}
else
{
for(int i=1;i<=12;i++)
{
try
{
driver.findElement(By.xpath("//div[@class='popover skyscanner-datepicker depart']//div[@class='calendar-info-bar datepicker_clearfix']//button[2]")).click();
if(driver.findElement(By.xpath("//div[@class='popover skyscanner-datepicker depart']//span[@class='current']")).getText().equals(expected_date))
break;
System.out.println("date get selected");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
List<WebElement> day_list = driver.findElements(By.xpath("//div[@class='container-body']//tbody//tr//td"));
for(WebElement a : day_list)
{
if(a.getText().equalsIgnoreCase(expected_day))
{
a.click();
}
}
driver.quit();
}
}
のWebページをロードするために、時間に依存するラインあなたが見ている時に '古い要素参照:要素がページdocument'に接続されていませんか? – DebanjanB