我的问题是我遇到了错误(正在等待驱动程序服务器启动chrome浏览器)

时间:2019-05-15 14:10:03

标签: selenium webdriver selenium-chromedriver

我正在将Eclipse Luna与Windows 10-64位,selenium-server-standalone-3.141.59和selenium-java-3.141.59一起使用。
我编写了一个简单的程序来访问url。但是出现此错误:

  

[13552:3540:0515 / 184943.562:ERROR:cache_util_win.cc(21)]无法   移动缓存:0   [13552:3540:0515 / 184943.562:ERROR:cache_util.cc(141)]无法移动   缓存文件夹C:\ Users \ RChauh \ AppData \ Local \ Google \ Chrome \ User   Data \ ShaderCache \ GPUCache到   C:\ Users \ RChauh \ AppData \ Local \ Google \ Chrome \ User   数据\ ShaderCache \ old_GPUCache_000   [13552:3540:0515 / 184943.562:ERROR:disk_cache.cc(185)]无法创建   快取[13552:3540:0515 / 184943.562:ERROR:shader_disk_cache.cc(623)]   着色器缓存创建失败:-2在现有浏览器会话中打开。   线程“主” org.openqa.selenium.WebDriverException中的异常:   等待驱动程序服务器启动超时。版本信息:版本:   '3.141.59',修订版:'e82be7d358',时间:'2018-11-14T08:25:53'系统   信息:主机:'LAPTOP-3VFBUTNB',ip:'192.168.1.102',操作系统名称:'Windows   10',os.arch:'amd64',os.version:'10 .0',java.version:'1.8.0_211'   驱动程序信息:driver.version:ChromeDriver位于   org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:202)     在   org.openqa.selenium.remote.service.DriverService.start(DriverService.java:188)     在   org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)     在   org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)     在   org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213)     在   org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:131)     在   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:181)     在   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:168)     在   org.openqa.selenium.chrome.ChromeDriver。(ChromeDriver.java:123)     在helloWorld.java.main(java.java:11)​​造成原因:   org.openqa.selenium.net.UrlChecker $ TimeoutException:等待超时   为[http://localhost:32149/status]可在20016 ms之后在   org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:100)     在   org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:197)     ... 9更多原因:java.util.concurrent.TimeoutException   java.util.concurrent.FutureTask.get(未知源)   com.google.common.util.concurrent.SimpleTimeLimiter.callWithTimeout(SimpleTimeLimiter.java:156)     在   org.openqa.selenium.net.UrlChecker.waitUntilAvailable(UrlChecker.java:75)     ...还有10个

package helloWorld;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class java {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
        WebDriver driver=new ChromeDriver();
        driver.get("https://www.facebook.com/");
        System.out.println("LoginPage");
        driver.quit();
    }

}

1 个答案:

答案 0 :(得分:1)

您应将webdriver.chrome.driver属性设置为指向chromedriver.exe,而不是chrome.exe

  1. 下载适用于您的Chrome浏览器版本的相关ChromeDriver软件包
  2. 在某个地方解压缩存档文件
  3. 修改webdriver.chrome.driver属性,使其指向第2步中的chromedriver.exe
  4. 就是这样,您应该现在就走吧

如果需要,请查看ChromeDriver - WebDriver for Chrome -> Getting Started以获得更多详细信息。


直到为时不晚的Page Object design pattern为止,它是Selenium脚本最佳实践的一种形式,它允许将测试逻辑与UI元素定义分离开来,从而使测试更易于开发和维护。请查看Design Patterns - Page Object Model,以获取更多详细信息和示例测试项目。