Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 硒日历用户界面处理_Java_Selenium_User Interface_Calendar - Fatal编程技术网

Java 硒日历用户界面处理

Java 硒日历用户界面处理,java,selenium,user-interface,calendar,Java,Selenium,User Interface,Calendar,Iam正在学习selenium中的日历UI处理概念,但仍然存在问题 代码1: import java.util.concurrent.TimeUnit; enter code here import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver;

Iam正在学习selenium中的日历UI处理概念,但仍然存在问题 代码1:

import java.util.concurrent.TimeUnit;

enter code here

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class CalenderUI {

    public static void main(String[] args) {

        System.setProperty("webdriver.chrome.driver","C:\\Users\\sumit goyal\\Downloads\\chromedriver_latest\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.manage().window().maximize();
        driver.get("http://www.airindia.in/");
        driver.findElement(By.cssSelector("li.bookFlight")).click(); //CALENDER Resides inside it

        driver.findElement(By.xpath("//input[@title='Departing']")).click(); // will open calendar POPUPmenu

        WebElement cal = driver.findElement(By.xpath("//div[@id='ui-datepicker-div']/div[2]")); //restricting scope

        while(!(driver.findElement(By.cssSelector("div[class='ui-datepicker-title'] span:nth-child(2)")).getText().equals("2021")))

        {
            cal.findElement(By.cssSelector("a[data-handler='next']")).click(); //will click on next button until 2021 arrives

        }

    }

}
运行代码后,我得到了以下错误:过时元素引用:元素未附加到页面文档


每个选择器似乎都是正确的,我检查了它,我不明白为什么它会失败

如果页面上发生的DOM操作暂时导致元素无法访问,则可能会发生这种情况。考虑到这些情况,您需要尝试在循环中重新定位元素

替换以下代码:

driver.findElement(By.xpath("//input[@title='Departing']")).click(); // will open calendar POPUPmenu
while (!(driver.findElement(By.cssSelector("div[class='ui-datepicker-title'] span:nth-child(2)")).getText().equals("2021"))) {
    WebElement cal = driver.findElement(By.xpath("//div[@id='ui-datepicker-div']/div[2]")); //restricting scope
    cal.findElement(By.cssSelector("a[data-handler='next']")).click(); //will click on next button until 2021 arrives
}

@Sumit Goyal,这个答案解决了你的问题吗?如果是,请单击计票下面答案上的勾号接受,以便对其他人有所帮助。还有疑问那就随便问吧?