How to retrieve the number of adults selected on a travel website with .getText() not working

huangapple 未分类评论57阅读模式
英文:

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循环中使用它,以停止增加所选成人的数量:
How to retrieve the number of adults selected on a travel website with .getText() not working

英文:

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:
How to retrieve the number of adults selected on a travel website with .getText() not working

答案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(&quot;webdriver.chrome.driver&quot;, &quot;C:\\Work\\Drivers\\New folder\\chromedriver.exe&quot;);
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();

         driver.get(&quot;https://www.easyjet.com/en&quot;);
WebDriverWait wait =new WebDriverWait(driver, 2000);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath(&quot;//*[contains(@id,&#39;Adults&#39;)]/following-sibling::button&quot;))));

        
      int numberOfAdults=3;
            
            for (int i = 2; i &lt;=numberOfAdults ; i++) {
            	driver.findElement(By.xpath(&quot;//*[contains(@id,&#39;Adults&#39;)]/following-sibling::button&quot;)).click();
				
			}
        }

huangapple
  • 本文由 发表于 2020年5月30日 03:56:10
  • 转载请务必保留本文链接:https://java.coder-hub.com/62093746.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定