我想自动化一个注册页面,需要从谷歌地图中选择地址。如何在selenium中做到这一点?

问题描述 投票:1回答:1

我正在自动化一个注册用户信息的网页,该页面需要在输入框中输入地址,然后谷歌地图会列出正确的地址。该页面需要在输入框中输入地址,然后谷歌地图会列出正确的地址。我必须选择谷歌地图的地址。如何在selenium中实现这个功能。这里是函数的图像。

Screenshot

这里是我的代码在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");
java selenium automated-tests selenium-ide browser-automation
1个回答
1
投票

如果你知道在地址下拉的第一个选项是你想要的,你可以做这个后,你做发送键。

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

0
投票

我试了一些东西,是工作 只有当你给的文本是唯一的。

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);
            }
    }
}

在TryCatch功能中,我有这样一行:

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

在实践中,当你输入你需要的文本时,如果选项只有一个,你可以对机器人说,按箭头向下,以便选择选项。如你所见,在我的例子中,文字还没有准备好。它是 "Indian Drive, Keysborough VIC, "而不是 "Indian Drive, Keysborough VIC, Australia",因为我想看到建议。所以,总结一下,如果你将输入你的文本,结果只有一个(唯一的)这个代码将始终选择从列表中的选项,按箭头向下按钮(sendKeys(Keys.ARROW_DOWN))。

如果你需要进一步升级它 此处 是这个建议生成器的谷歌官方页面。

© www.soinside.com 2019 - 2024. All rights reserved.