You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中实现搜索输入、按下向下箭头后敲击回车操作

Selenium地址搜索按键操作问题排查方案

已发现的问题点

  • ChromeDriver初始化配置错误
    现有配置System.setProperty("Webdriver.chrome.drive", "C\\chromedrivers.exe");存在两处错误:
    1. 系统属性名拼写错误,正确属性名为webdriver.chrome.driver,当前拼写末尾缺失字母r,首字母多余大写
    2. 本地驱动路径拼写错误,C盘标识后缺失冒号,正确路径应为C:\\chromedrivers.exe
  • 按键逻辑不符合需求
    现有代码仅在输入地址后拼接了回车操作,未加入要求的向下箭头按键指令
  • 缺失加载等待逻辑
    地址输入完成后,联想下拉框需要渲染时间,无等待直接触发按键会导致操作在下拉框加载完成前执行,无法生效
  • 元素定位方式不稳定
    所使用的绝对路径XPath高度依赖页面DOM层级结构,页面结构稍有变动就会出现定位失败问题

修正后可运行代码

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;

public class LocationSearchTest {
    public static void main(String[] args) {
        // 修正驱动配置
        System.setProperty("webdriver.chrome.driver", "C:\\chromedrivers.exe");
        ChromeDriver driver = new ChromeDriver();
        // 配置全局隐式等待
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
        driver.manage().window().maximize();
        
        driver.get("https://freshii.tacitdev.ca/");
        driver.findElement(By.xpath("//span[contains(text(),'Locations')]")).click();
        driver.navigate().to("https://freshii.tacitdev.ca/ca/lang/en/locations/delivery");

        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
        // 替换为更稳定的相对定位,等待输入框可操作
        var addressInput = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//autocomplete-manual//input")));
        // 激活输入框
        addressInput.click();
        // 输入目标地址
        addressInput.sendKeys("175 Hilda Avenue, North York, ON, Canada");
        // 等待联想下拉选项加载完成
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//autocomplete-manual//li")));
        // 按向下箭头选中第一个联想结果,再按回车确认
        addressInput.sendKeys(Keys.ARROW_DOWN);
        addressInput.sendKeys(Keys.ENTER);
    }
}

额外排查点

如果运行后仍无法生效,可优先检查两点:

  • 本地ChromeDriver版本与当前安装的Chrome浏览器主版本是否一致
  • 操作执行时系统输入法是否为英文模式,中文输入法会导致特殊按键指令失效

内容的提问来源于stack exchange,提问作者Irene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:00:02