Java 硒日历用户界面处理
Iam正在学习selenium中的日历UI处理概念,但仍然存在问题 代码1: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;
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,这个答案解决了你的问题吗?如果是,请单击计票下面答案上的勾号接受,以便对其他人有所帮助。还有疑问那就随便问吧?