如何使用带 Java 的 Selenium WebDriver 处理日历弹出窗口?
How to handle calendar popup using Selenium WebDriver with Java?
如何使用带有 Java 的 Selenium WebDriver select 从像这种性别的日历弹出窗口中约会(即日历中的 24/04/2015)?
我试过这个:
package com.Automation;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class CalendarPopup {
/**
* @param args
*/
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.yatra.com/");
driver.findElement(By.id("//div[2]/ul[3]/li[1]/i")).click();
driver.findElement(By.id("a_2015_4_25")).click();
}
}
您可以通过从其 id 中选择它然后单击它来单击一天
driver.findElement(By.id('a_2015_4_24')).click(); //use this format a_yyyy_m_d
您还可以通过单击日历箭头来后退或前进:
driver.findElement(By.className('js_btnNext')).click() // click the "next" arrow
driver.findElement(By.className('js_btnPrev')).click() // click the "prev" arrow
请注意,您不能点击过去的日子或不可见的日子,而且当您点击这一天时,日历必须是可见的。
编辑:您在代码中选择了错误的元素,因为您是通过将 xpath 传递给函数的 id 选择元素,它应该是这样的:
//....
driver.findElement(By.xpath("//div[2]/ul[3]/li[1]/i")).click();
driver.findElement(By.id('a_2015_4_24')).click();
//...
如何使用带有 Java 的 Selenium WebDriver select 从像这种性别的日历弹出窗口中约会(即日历中的 24/04/2015)?
我试过这个:
package com.Automation;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class CalendarPopup {
/**
* @param args
*/
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.yatra.com/");
driver.findElement(By.id("//div[2]/ul[3]/li[1]/i")).click();
driver.findElement(By.id("a_2015_4_25")).click();
}
}
您可以通过从其 id 中选择它然后单击它来单击一天
driver.findElement(By.id('a_2015_4_24')).click(); //use this format a_yyyy_m_d
您还可以通过单击日历箭头来后退或前进:
driver.findElement(By.className('js_btnNext')).click() // click the "next" arrow
driver.findElement(By.className('js_btnPrev')).click() // click the "prev" arrow
请注意,您不能点击过去的日子或不可见的日子,而且当您点击这一天时,日历必须是可见的。
编辑:您在代码中选择了错误的元素,因为您是通过将 xpath 传递给函数的 id 选择元素,它应该是这样的:
//....
driver.findElement(By.xpath("//div[2]/ul[3]/li[1]/i")).click();
driver.findElement(By.id('a_2015_4_24')).click();
//...