Selenium无法获取URL?附Firefox驱动Java代码求助
排查Selenium无法访问目标URL的问题
我来帮你一步步拆解可能的问题,先从你的代码和常见的坑入手:
首要问题:目标URL被注释了
你代码里的driver.get("https://www.easybooking.lk/login");被注释掉了!浏览器根本没收到访问这个网址的指令,这肯定是最直接的原因。先把这行的注释符号去掉,让它生效。未完成的隐式等待代码
最后一行driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECOND...明显没写完,这会导致编译错误,程序根本跑不起来。补全代码并确保导入对应的包:// 先导入这个包 import java.util.concurrent.TimeUnit; // 补全隐式等待代码 driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);Geckodriver的路径与权限检查
- 路径写法:你用了
//,Java里虽然能识别,但更规范的是用单斜杠/,比如/root/Desktop/jarselenium/geckodriver-v0.20.1-linux64/geckodriver,先在终端用ls 这个路径确认文件确实存在。 - 执行权限:Linux系统下,geckodriver需要可执行权限,运行这条命令给它加上:
没有权限的话,Selenium会无法启动驱动,自然打不开网页。chmod +x /root/Desktop/jarselenium/geckodriver-v0.20.1-linux64/geckodriver
- 路径写法:你用了
版本兼容性问题
你用的geckodriver v0.20.1是比较旧的版本了,它和Firefox版本必须匹配才行——老版本geckodriver一般对应Firefox 57到63左右的版本。如果你的Firefox是最新版,肯定会出现兼容性问题,导致无法加载网页。建议你升级geckodriver到和当前Firefox版本匹配的版本,或者降级Firefox到对应版本。服务器环境的特殊配置(如果是无图形界面运行)
要是你在没有图形界面的Linux服务器上运行,得给Firefox配置无头模式,不然浏览器启动不了:import org.openqa.selenium.firefox.FirefoxOptions; // 配置无头模式 FirefoxOptions options = new FirefoxOptions(); options.addArguments("--headless"); WebDriver driver = new FirefoxDriver(options);另外还要确保服务器安装了Xvfb这类虚拟显示服务,不然无头模式也可能无法正常工作。
内容的提问来源于stack exchange,提问作者user8305604
相关产品推荐
相关产品推荐

