在SoapUI 5.2.1中启动Chrome时遇NoSuchMethodError错误求助
解决SoapUI中运行Selenium Chrome脚本的NoSuchMethodError问题
嗨,这个java.lang.NoSuchMethodError问题本质是Selenium依赖版本不兼容导致的类冲突,我们来一步步解决:
问题根源
你同时在SoapUI/bin/ext目录下放了两个版本差异极大的Selenium jar包:
selenium-server-standalone-3.4.0.jar(3.x版本)selenium-chrome-driver-2.3.1.jar(2.x版本)
selenium-server-standalone包本身已经包含了所有Selenium核心组件(包括ChromeDriver的实现类),而旧版本的selenium-chrome-driver jar会优先加载旧的类文件,其中org.openqa.selenium.os.CommandLine.findExecutable方法在3.x版本的Selenium中已经有了签名变化,导致调用时找不到对应的方法。
另外你用的chromedriver 2.36和Selenium 3.4.0版本是兼容的,这部分没问题,不用调整。
解决方案
清理冲突依赖
直接删除SoapUI/bin/ext目录下的selenium-chrome-driver-2.3.1.jar,只保留selenium-server-standalone-3.4.0.jar和chromedriver.exe即可。完善脚本导入
在你的Groovy脚本开头添加必要的类导入,避免类加载异常:import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import java.util.concurrent.TimeUnit System.setProperty("webdriver.chrome.driver","D:\\SoapUI-5.2.1\\bin\\ext\\chromedriver.exe") WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("https://www.MyUrl.com") driver.manage().timeouts().implicitlyWait(120,TimeUnit.SECONDS);重启SoapUI
修改ext目录下的jar包后,必须重启SoapUI,确保新的依赖被正确加载,清除旧的类缓存。
完成以上步骤后,重新运行脚本应该就能正常启动Chrome浏览器了。
内容的提问来源于stack exchange,提问作者Karunagara
相关产品推荐
相关产品推荐

