selenium - 尝试从 RedBus.com 选择继续日期
问题描述
我是硒的新手。我正在尝试从 RedBus.com 选择 Onward 日期,有人可以帮助我吗?以下是我尝试过的代码。
public class RedBusSearch extends RedBusLibraries {
public RedBus red = null;
public WebDriver driver = null;
@Test public void travel() {
logger = extent.createTest("SpiceJet flight bookin");
red = new RedBus(driver);
delay(3000);
input(red.getSource(), "Hyderabad", "source");
input(red.getDestination(), "Bangalore", "Destination");
click(red.getOnwardDate(), "onwards date");
driver.findElement(By.xpath("//div[@id='rb-calendar_onward_cal']"));
List<WebElement> month = driver.findElements(By.xpath("//div[@class='rb-calendar']/table/tbody/tr/td"));
System.out.println(month.size());
for (WebElement ele : month)
{
if (ele.getText().equals("15"))
ele.findElement(By.linkText("15")).click();
break;
}
}
}
,,,
解决方案
您必须单击下个月按钮,直到您达到一年中所需的月份。然后选择日期。这是选择的逻辑15 May 2019
driver.findElement(By.cssSelector("[for='onward_cal']")).click();
//select month
while(!driver.findElement(By.cssSelector("#rb-calendar_onward_cal .monthTitle")).getText().equals("May 2019")) {
driver.findElement(By.cssSelector(".rb-calendar#rb-calendar_onward_cal .next button")).click();
System.out.println(driver.findElement(By.cssSelector("#rb-calendar_onward_cal .monthTitle")).getText());
Thread.sleep(1000);
}
//select date
driver.findElement(By.xpath("//div[@id='rb-calendar_onward_cal']//td[.='15']")).click();
推荐阅读
- jquery - jquery如何通过反向名称属性选择元素
- ios - Xcode Buildtime 错误:'无法加载文件列表的内容:'.../Info.plist'(在目标'xxxx'中)
- excel - 需要 Excel、VBA 和用户表单方面的帮助,特别是在写入现有数据时
- java - 如何将字符串列表转换为 LinkedHashMap?
- html - 检查单选时检查文本颜色
- github - 我搞砸了主分支并且项目无法加载,我如何创建一个新的主分支?
- node.js - 使用 promise 将一个 NodeJS module.export 函数的结果传递给另一个 NodeJS module.export 函数
- powershell - 如何在 Windows 批处理文件中传递字符串数组
- mongodb - 如何在 MongoDB 聚合管道中查找并返回结果所在的页面?
- javascript - 在 React 中显示/隐藏组件