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

如何在C#中使用Selenium SendKeys正确传递URL?输入后格式异常问题求解

解决Selenium SendKeys输入URL字符错乱的问题

嘿,这个问题我之前碰到过好几个开发者问起!你遇到的https://stackoverflow.com/变成https: --stackoverflow.com-的情况,大概率是键盘布局映射错误或者SendKeys对特殊字符的解析出了问题,尤其是斜杠、冒号这类符号被错误转义了。下面给你几个实用的解决办法:

  • 最省心的替代方案:直接用Selenium内置的URL跳转方法
    其实完全没必要用SendKeys在地址栏输入URL,Selenium本身就提供了专门打开网页的方法,既高效又不会出现字符错误:

    // 直接打开目标URL
    driver.get("https://stackoverflow.com/");
    // 或者用navigate方法,效果类似
    driver.navigate().to("https://stackoverflow.com/");
    

    如果你的场景就是要模拟用户手动输入地址栏的操作,再往下看其他办法。

  • 必须用SendKeys时的修复方案

    • 检查测试环境的键盘布局:确保你的测试机器/容器用的是预期的键盘布局(比如美式英文),有些非英文布局下,符号的输入键位和驱动识别的不一致,就会导致输出错误字符。
    • 用JavaScript直接设置输入值:绕开SendKeys的字符解析逻辑,直接通过JS给输入框赋值,完美避免符号转义问题:
      // 替换成你实际定位输入框的方式,比如ID、XPath
      WebElement urlInput = driver.findElement(By.id("address-bar"));
      driver.executeScript("arguments[0].value = 'https://stackoverflow.com/';", urlInput);
      
    • 拆分URL分段输入:把URL拆成几个部分分别SendKeys,比如先输https:,再输//stackoverflow.com/,有时候分段输入能规避批量字符的解析bug。
    • 更新Selenium和浏览器驱动:旧版本的Selenium或者ChromeDriver/GeckoDriver可能存在特殊字符处理的bug,升级到对应浏览器版本的最新稳定驱动,通常能解决这类兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 09:07:29