Java 将Chrome驱动程序与Selenium 2配合使用

Java 将Chrome驱动程序与Selenium 2配合使用,java,testing,selenium,webdriver,Java,Testing,Selenium,Webdriver,我正在尝试使用Chrome Drive来执行我的一些测试,这些测试在Firefox上运行得很好,但我无法执行它们,我已经验证了要求,即Chrome版本12或更高版本的位置,以及诸如此类的内容,但无论如何仍然无法正常工作,调用驱动程序的方法是: WebDriver fd = new ChromeDriver(); fd.get("url"); 然后搜索一些元素,但没有任何结果,错误消息为: 线程“main”中出现异常 org.openqa.selenium.WebDriverException:

我正在尝试使用Chrome Drive来执行我的一些测试,这些测试在Firefox上运行得很好,但我无法执行它们,我已经验证了要求,即Chrome版本12或更高版本的位置,以及诸如此类的内容,但无论如何仍然无法正常工作,调用驱动程序的方法是:

WebDriver fd = new ChromeDriver();
fd.get("url");
然后搜索一些元素,但没有任何结果,错误消息为:

线程“main”中出现异常 org.openqa.selenium.WebDriverException: 找不到Chrome。设置 webdriver.chrome.bin系统信息: os.name:'Windows XP',os.arch:'x86', os.version:'5.1',java.version: “1.6.0_18”驾驶员信息: 驱动程序版本:ChromeDriver at org.openqa.selenium.chrome.ChromeBinary.getChromeBinaryLocation(ChromeBinary.java:220) 在 org.openqa.selenium.chrome.ChromeBinary.getCommandline(ChromeBinary.java:121) 在 org.openqa.selenium.chrome.ChromeBinary.prepareProcess(ChromeBinary.java:67) 在 org.openqa.selenium.chrome.ChromeBinary.start(ChromeBinary.java:109) 在 org.openqa.selenium.chrome.ChromeCommandExecutor.start(ChromeCommandExecutor.java:373) 在 org.openqa.selenium.chrome.ChromeDriver.startClient(ChromeDriver.java:65) 在 org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:85) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:25) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:43) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:53) 在 equifax.qa.test.NewTests.access.main(access.java:11)


如果有人能帮助我,那就太好了。

您是否确保已从下载了Chrome驱动程序并将其放置在您的
路径中


查看更多详细信息

从下载ChromeDriver.exe,然后添加系统属性,如下所示:

System.setProperty("webdriver.chrome.driver", "...\chromedriver.exe");

我可以通过如下方式启动selenium服务器来实现这一点:

java -jar selenium-server-standalone-2.0rc2.jar -Dwebdriver.chrome.driver=c:\path\to\chromedriver.exe

(运行Windows 7 64位、Chrome 12、selenium server rc2)

只需从下载chromedriver\u win32\u 13.0.775.0.zip和selenium-server-standalone-2.0rc3.jar即可[http://code.google.com/p/selenium/downloads/list][1]

将chromedriver_win32_13.0.775.0.zip解压到一个文件夹中,例如C:/drivers/chrome/,以便chromedriver.exe位于C:/drivers/chrome/chromedriver.exe

针对端口6668上的集线器注册节点(例如)

如果您访问


您应该看到Chrome驱动程序已注册

您可以将功能设置为指向要启动的浏览器的二进制文件

DesiredCapabilities=DesiredCapabilities.chrome(); setCapability(“chrome.binary”,“usr/lib/chromium browser/chromium browser”)

WebDriver=新的ChromeDriver(功能)

例如:-Chrome浏览器(33.0.1729.0)适用于ChromeDriver 2.7,而不适用于旧版本

您可以从以下链接中选择所有chromedriver版本:-

因此,请尝试使用chromedriver支持的浏览器版本。

对Chrome使用此版本

步骤2使用Testng框架

@BeforeClass

public void setUp() throws Exception

{ 

    System.setProperty("webdriver.chrome.driver", "D://Work-Selenium//chromedriver_win32//chromedriver.exe");

    driver = new ChromeDriver();

    baseUrl = "http://google.com";

    driver.get(baseUrl);

}

如果您使用的是Maven项目。按照以下步骤操作

  • 从该链接下载最新的chromedriver.exe
  • 在测试中创建驱动程序文件夹。它应该是这样的
    src/test/resources/drivers
  • 在步骤2中,将chromedriver.exe移动到上述路径
  • 在创建chrome驱动程序对象之前,请使用以下代码
  • System.setProperty(“webdriver.chrome.driver”,
    
    Thread.currentThread().getContextClassLoader().getResource(“drivers/chromedriver.exe”).getFile()

    问题,为什么我们必须使用提示窗口来运行测试,Selenium 2还没有提供此功能?您不需要运行它。这只是使用它的一种方法,在连接到远程实例时,它会很有用。在本地执行时,您可以只设置系统属性,让WebDriver负责启动,等等。嗨,我很好奇这个驱动程序与org.openqa.selenium.chrome.ChromeDriver有何不同?嗨,我很好奇这个驱动程序与org.openqa.selenium.chrome.ChromeDriver有何不同?ChromeDriver使用ChromeDriver.exe与chrome交互。org.openqa.selenium.chrome.ChromeDriver只是一种语言绑定,它允许您与ChromeDriver.exe交互,而ChromeDriver.exe又与实际浏览器交互。+1如果是这种情况,那么我们为什么要设置系统属性?我们不是为FireFox设置这个!我不能100%确定这是否是原因,但ChromeDriver.exe是由谷歌开发人员而不是WebDriver/Selenium团队开发的,所以我猜这是集成问题。这使得同时开发这两个项目更容易,也许?只是猜测而已!该属性应该是“webdriver.chrome.driver”(至少在selenium 2.0rc3中是这样的)。该堆栈跟踪来自旧版本的selenium,在ChromeDriver重写之前。显示的某些类不再存在。下面给出的建议假设您使用的是较新的版本。您知道如何从Python执行此操作吗?当我使用Firefox时,我会做以下事情:chrome是否有python模块?从selenium import selenium import unittest开始,时间,重新分类Untitled(unittest.TestCase):def setUp(self):self.verificationErrors=[]self.selenium=selenium(“localhost”,4444,“*chrome”),self.selenium.start()解决了我上面的问题。我可以替换“*chrome”“使用*firefox、*mock、*firefoxproxy、*pifirefox、*chrome、*iexploreproxy、*iexplore、*firefox3、*safariproxy、*googlechrome、*konqueror、*firefox2、*safari、*piiexplore、*firefoxchrome、*opera、*iehta、*Custom,我在使用groovy吗?”?如何给groovy这个?我有同样的问题,实际上我在这里发布了我的问题,我很困惑。。。是硒、铬或什么的问题吗?+1我试过t
    @BeforeClass
    
    public void setUp() throws Exception
    
    { 
    
        System.setProperty("webdriver.chrome.driver", "D://Work-Selenium//chromedriver_win32//chromedriver.exe");
    
        driver = new ChromeDriver();
    
        baseUrl = "http://google.com";
    
        driver.get(baseUrl);
    
    }