1
votes

Comment choisir une adresse à partir de la suggestion automatique de google map en utilisant Selenium et Java

J'automatise une page Web pour enregistrer les informations utilisateur. Cette page nécessite de saisir une adresse dans la zone de saisie, puis Google map listera l'adresse correcte. Je dois choisir l'adresse google map. Comment faire cela dans le sélénium. Voici l'image de la fonction.

Screenshot

Voici mon code en Selenium - Java.

public void signup() throws InterruptedException {
        driver.get("https://app.getjarvis.com.au/sign-up");
        driver.manage().window().setSize(new Dimension(801, 721));
        driver.findElement(By.id("addressInput")).click();
        driver.findElement(By.id("addressInput")).click();
        driver.findElement(By.id("addressInput")).sendKeys("Indian Drive, Keysborough VIC, Australia");
        Thread.sleep(3000);

        Select drpdwn = new Select(driver.findElement(By.id("addressInput")));
        drpdwn.selectByVisibleText("Indian Drive, Keysborough VIC, Australia");


1 commentaires

Veuillez modifier votre question et inclure le code HTML correspondant.


3 Réponses :


0
votes

J'ai essayé quelque chose qui ne fonctionne que si le texte que vous donnez est unique:

driver.findElement(By.id("addressInput")).sendKeys(Keys.ARROW_DOWN);

Dans la fonctionnalité Try / Catch, j'ai cette ligne:

import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.Select;
import java.lang.*;
import org.openqa.selenium.WebElement;
import java.util.*;


class Main {


    public static void main(String args[]) {

            System.setProperty("webdriver.gecko.driver", "/home/avionerman/Documents/Java/geckodriver");
            WebDriver driver = new FirefoxDriver();

            driver.get("https://app.getjarvis.com.au/sign-up");
            driver.manage().window().maximize();
            driver.findElement(By.id("addressInput")).click();
            driver.findElement(By.id("addressInput")).sendKeys("Indian Drive, Keysborough VIC, ");
            driver.findElement(By.id("addressInput")).click();

            try {
                Thread.sleep(3000);
                driver.findElement(By.id("addressInput")).sendKeys(Keys.ARROW_DOWN);
            } catch (InterruptedException e) {
                System.out.println("Error: " + e);
            }
    }
}


0 commentaires

1
votes

si vous savez que la première option dans la liste déroulante des adresses est ce que vous voulez, vous pouvez le faire après avoir effectué les clés d'envoi:

driver.findElements(By.cssSelector(".pac-item")).get(0).click();


1 commentaires

J'ai essayé cette option mais il y a d'abord une erreur: ce n'est pas ("...") [0] mais ("..."). Get (0) puisque le résultat est un tableau et non une liste :)



0
votes

Pour cliquer () sur le pac-matched suggestion automatique vous devez induire WebDriverWait pour le elementToBeClickable () et vous pouvez utiliser l'une des Stratégies de localisation :

  • cssSelector :

    driver.get("https://app.getjarvis.com.au/sign-up");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='addressInput']"))).sendKeys("Indian Drive, Keysborough VIC, Australia");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='pac-item-query']/span[@class='pac-matched']"))).click();
    
  • xpath :

    driver.get("https://app.getjarvis.com.au/sign-up");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#addressInput"))).sendKeys("Indian Drive, Keysborough VIC, Australia");
    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.pac-item-query>span.pac-matched"))).click();
    
  • Instantané du navigateur:

 jarvis


0 commentaires