selenium-webdriver - 如何使用 Selenium 并排打印一些文本?
问题描述
我必须并排打印酒店名称和价格
示例:oyo Rooms - 2000rs
我尝试使用 Selenium 网络驱动程序。
WebDriver driver = new ChromeDriver();
String baseUrl = "https:www.teletextholidays.co.uk";
driver.get(baseUrl);
driver.manage().window().maximize();
WebElement all_Inclusive = driver.findElement(By.xpath("//*[@class='header pstn-fxd edge txt-center fixed-nav-container']//div[@class='show-on-desktop inblock']//a[@class='top-nav-allinclusive nav-item txt-white inblock hover-out allinclusivelink']"));
all_Inclusive.click(); WebElement all_hotels =driver.findElement(By.xpath("//*[@class='lg-flex-box']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView();", all_hotels);
List<WebElement> hotellist = driver.findElements(By.xpath("//*[@class='deal-price pstn-reltv grid-stay items-center space-between']//span[@class='dstn-name txt-bold']"));
System.out.println(hotellist.get);
List<WebElement> pricelist = driver.findElements(By.xpath("//*[@class='deal-price pstn-reltv grid-stay items-center space-between']//span[@class='tth-price font-bold txt-sunset']" ));
/*for (WebElement hotel : hotellist) {
System.out.println(hotel.getText());
}*/
for (WebElement price : pricelist) {
System.out.println(price.getText());
if(price.getText().contains("157")) {
System.out.println(hotel);
}
}
预期输出:Oyo - 1000, alpha - 2345。
我做错了什么?
解决方案
我们需要先获取父元素,然后从该元素中找到酒店和价格,以保持它们之间的相互关系。
尝试使用以下代码打印酒店 - 价格格式。
List<WebElement> listOfLinks = driver.findElements(By.cssSelector("a>div.deal-price"));
for(WebElement link: listOfLinks) {
System.out.print(link.findElement(By.cssSelector(".from-price>.dstn-name")).getText());
System.out.print(" - ");
System.out.println(link.findElement(By.cssSelector(".txt-right .tth-price")).getText());
}
推荐阅读
- docker - 如何将共享库的分支名称指定为环境变量
- java - 用于课堂程序的多个扫描仪,我不知道如何拥有多个
- python - 如何使用pyspark仅检索s3文件夹路径中的文件名
- python - 使用 Boto3 列出具有访问点的 S3 存储桶对象
- discord.js - 我希望能够在创建时覆盖频道的权限
- mysql - 从 Web 服务器 API 并行调用时,AWS RDS 上的休眠 MySQL 连接数快速增加
- git - 在拉取请求和合并期间添加新文件
- react-native - 当触摸点在多个可触摸元素之间移动时,如何跟踪当前触摸的元素?
- python - 通过转置和设置其他列的值重新排序数据帧(熊猫)
- json - 如何解决json加载问题?