英文:
How to retrieve the number of adults selected on a travel website with .getText() not working
问题
以下是翻译好的内容:
我正在使用Java练习Selenium Webdriver,访问以下网站:
https://www.easyjet.com/en
我试图增加所选的成人数量,直到选择了3人。以下是我的代码:
package d_practise;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class easyjetMenu5 {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C:\\Work\\Drivers\\New folder\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.easyjet.com/en");
WebElement adultCount = driver.findElement(By.cssSelector("input[name='Adults']"));
String count = adultCount.getText();
while(!count.equalsIgnoreCase("3")) {
driver.findElement(By.cssSelector("[passenger-type='Adults'] [alt='Add one passenger.']")).click();
}
}
};
这是我试图获取的数字值的图像。一旦我能够获取这个数字,我就可以在while循环中使用它,以停止增加所选成人的数量:
英文:
I am practicing Selenium Webdriver using Java on the following website:
https://www.easyjet.com/en
I am trying to increase the number of Adults selected until 3 has been selected. Here is my code:
package d_practise;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class easyjetMenu5 {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C:\\Work\\Drivers\\New folder\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.easyjet.com/en");
WebElement adultCount = driver.findElement(By.cssSelector("input[name='Adults']"));
String count = adultCount.getText();
while(!count.equalsIgnoreCase("3")) {
driver.findElement(By.cssSelector("[passenger-type='Adults'] [alt='Add one passenger\\.']")).click();
}
}
};
Here is an image of the number value I am trying to retrieve. Once I am able to get this number I can use it in the while loop to stop incrementing the number of adults selected:
答案1
得分: 0
请尝试以下代码,它可以工作。
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C:\\Work\\Drivers\\New folder\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.easyjet.com/en");
WebDriverWait wait = new WebDriverWait(driver, 2000);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//*[contains(@id,'Adults')]/following-sibling::button"))));
int numberOfAdults = 3;
for (int i = 2; i <= numberOfAdults; i++) {
driver.findElement(By.xpath("//*[contains(@id,'Adults')]/following-sibling::button")).click();
}
}
英文:
Try this code, its working.
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "C:\\Work\\Drivers\\New folder\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.easyjet.com/en");
WebDriverWait wait =new WebDriverWait(driver, 2000);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath("//*[contains(@id,'Adults')]/following-sibling::button"))));
int numberOfAdults=3;
for (int i = 2; i <=numberOfAdults ; i++) {
driver.findElement(By.xpath("//*[contains(@id,'Adults')]/following-sibling::button")).click();
}
}
专注分享java语言的经验与见解,让所有开发者获益!
评论