如何使用Selenium Webdriver从日历中选择值
在一个公交车预订网站www.redbus.In,我必须选择行程日期如何使用Selenium Webdriver从日历中选择值,selenium,Selenium,在一个公交车预订网站www.redbus.In,我必须选择行程日期 如何使用Selenium WebDriver实现这一点?只需尝试一下下面的xpath String month="Sept"; String date="28"; "//td[text()='"+month+"']/../..//a[text()='"+date+"']" 它将选择9月28日 根据您的要求给出月份和日期 下面的逻辑用于在月份之间导航 driver.findElement(By.cssSelector("td.
如何使用Selenium WebDriver实现这一点?只需尝试一下下面的xpath
String month="Sept";
String date="28";
"//td[text()='"+month+"']/../..//a[text()='"+date+"']"
它将选择9月28日
根据您的要求给出月份和日期
下面的逻辑用于在月份之间导航
driver.findElement(By.cssSelector("td.next")).click();
driver.findElement(By.cssSelector("td.previous")).click();
我希望它能工作(我没有试过我的机器)
编辑-I
我在我的机器上试过下面的逻辑,它工作得很好
driver=new FirefoxDriver();
driver.get("http://www.redbus.in");
//selecting date of journey
driver.findElement(By.id("calendar")).click(); driver.findElement(By.xpath("//td[text()='Sept']/../..//a[text()='27']")).click();
//selecting return jouney
driver.findElement(By.id("calendar1")).click(); driver.findElement(By.xpath("//td[text()='Oct']/../..//a[text()='3']")).click();
请尝试使用下面的xpath
String month="Sept";
String date="28";
"//td[text()='"+month+"']/../..//a[text()='"+date+"']"
它将选择9月28日
根据您的要求给出月份和日期
下面的逻辑用于在月份之间导航
driver.findElement(By.cssSelector("td.next")).click();
driver.findElement(By.cssSelector("td.previous")).click();
我希望它能工作(我没有试过我的机器)
编辑-I
我在我的机器上试过下面的逻辑,它工作得很好
driver=new FirefoxDriver();
driver.get("http://www.redbus.in");
//selecting date of journey
driver.findElement(By.id("calendar")).click(); driver.findElement(By.xpath("//td[text()='Sept']/../..//a[text()='27']")).click();
//selecting return jouney
driver.findElement(By.id("calendar1")).click(); driver.findElement(By.xpath("//td[text()='Oct']/../..//a[text()='3']")).click();
您也可以直接发送日期或时间:
WebElement dateBox = driver.findElement(By.xpath("//form//input[@name='bdaytime']"));
//Fill date as mm/dd/yyyy as 09/25/2013
dateBox.sendKeys("09252013");
//Press tab to shift focus to time field
dateBox.sendKeys(Keys.TAB);
//Fill time as 02:45 PM
dateBox.sendKeys("0245PM");
您也可以直接发送日期或时间:
WebElement dateBox = driver.findElement(By.xpath("//form//input[@name='bdaytime']"));
//Fill date as mm/dd/yyyy as 09/25/2013
dateBox.sendKeys("09252013");
//Press tab to shift focus to time field
dateBox.sendKeys(Keys.TAB);
//Fill time as 02:45 PM
dateBox.sendKeys("0245PM");
下面是我们在门户上使用的日期选择器字段的屏幕截图,下面是我们用于在日期选择器上选择突出显示日期的代码
下面是我们在门户上使用的日期选择器字段的屏幕截图,下面是我们用于在日期选择器上选择突出显示日期的代码
在硒中有多种方法可以做到这一点。 有些网页提供了一个选择年份和月份的选项,就像在windows中一样。有些网页,如REDBUS.in,只有“下一步”和“上一步”按钮可选择年份和月份。我正在写一个健壮但通用的方法,它将适用于所有类型的日历事件
您可能需要为特定的需求应用逻辑,但这种获取日期的逻辑总是有效的。在Selenium中有多种方法可以做到这一点。 有些网页提供了一个选择年份和月份的选项,就像在windows中一样。有些网页,如REDBUS.in,只有“下一步”和“上一步”按钮可选择年份和月份。我正在写一个健壮但通用的方法,它将适用于所有类型的日历事件
您可能需要为特定的需求应用逻辑,但获取日期的逻辑始终有效。您尝试过什么吗?此代码正在选择当前日期。但我必须选择未来的日期。datedriver.findElement(By.className(“wd”)。单击();您尝试过什么吗?此代码正在选择当前日期。但我必须选择一个未来日期。datedriver.findElement(By.className(“wd”)。单击();它不起作用了。但是我尝试了以下代码:driver.findElement(By.xpath(“td[text()='wd']//a[value=27]”);你能帮我吗?在你的代码//xpath中遗漏的代码中,试一下如下。driver.findElement(By.xpath(“//td[text()='Sept']/../../..//a[text()='27']))。单击();它应该选择9月27日,我已经试过了&它在我的机器上工作。看到答案了吗?我添加的逻辑正在我的机器中工作。是的,它正在工作……但是需要一个小的澄清。但是为什么我们在代码中使用这个:/../。。为什么不选择此项?在xpath中,从需要使用/(的子项)转到父项。。在firebug中查看该日历的结构,以便您能够理解。如果我的答案有效,请接受并投票。它无效。但是我尝试了以下代码:driver.findElement(By.xpath(“td[text()='wd']//a[value=27]”);你能帮我吗?在你的代码//xpath中遗漏的代码中,试一下如下。driver.findElement(By.xpath(“//td[text()='Sept']/../../..//a[text()='27']))。单击();它应该选择9月27日,我已经试过了&它在我的机器上工作。看到答案了吗?我添加的逻辑正在我的机器中工作。是的,它正在工作……但是需要一个小的澄清。但是为什么我们在代码中使用这个:/../。。为什么不选择此项?在xpath中,从需要使用/(的子项)转到父项。。在firebug中查看该日历的结构,以便您能够理解。如果我的答案有效,请接受并投票。