【问题标题】:Using Chrome Driver with Selenium 2在 Selenium 2 中使用 Chrome 驱动程序
【发布时间】:2011-09-16 15:25:25
【问题描述】:

我正在尝试使用 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' 驱动程序信息: driver.version:ChromeDriver 在 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)

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

【问题讨论】:

  • 此堆栈跟踪来自旧版本的 Selenium,在 ChromeDriver 重写之前。显示的某些类不再存在。下面给出的建议假设您使用的是较新版本。
  • 你知道如何从 Python 中做到这一点吗?当我使用 Firefox 时,我会执行以下操作:如果有用于 chrome 的 python 模块? from selenium import selenium import unittest, time, re class Untitled(unittest.TestCase): def setUp(self): self.verificationErrors = [] self.selenium = selenium("localhost", 4444, "*chrome", "@987654321 @) self.selenium.start()
  • 解决了我上面的问题。我可以用 *firefox、*mock、*firefoxproxy、*pifirefox、*chrome、*iexploreproxy、*iexplore、*firefox3、*safariproxy、*googlechrome、*konqueror、*firefox2、*safari、*piiexplore 替换“*chrome” *firefoxchrome, *opera, *iehta, *custom
  • 我正在使用 groovy?如何为 groovy 提供这个?
  • 我也有同样的问题,实际上我在这里发布了我的问题stackoverflow.com/questions/18436156/… 我很困惑...是 Selenium、chromedriver 的问题还是什么?

标签: java testing selenium webdriver


【解决方案1】:

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

  1. 从此链接下载最新的 chromedriver.exe。
  2. 在测试中创建一个驱动程序文件夹。它应该看起来像这样src/test/resources/drivers
  3. 将 chromedriver.exe 移至上述步骤 2 中的路径
  4. 在创建 chrome 驱动程序对象之前使用下面的代码

System.setProperty("webdriver.chrome.driver", Thread.currentThread().getContextClassLoader().getResource("drivers/chromedriver.exe").getFile());

【讨论】:

    【解决方案2】:

    在 Chrome 中使用它

    Step-1 Download Chrome driver from location

    第二步使用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);
    
    }
    

    【讨论】:

      【解决方案3】:

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

      DesiredCapabilities 能力 = DesiredCapabilities.chrome(); capabilities.setCapability("chrome.binary", "/usr/lib/chromium-browser/chromium-browser");

      WebDriver driver = new ChromeDriver(capabilities);

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

      您可以从以下链接中选择所有可用的 chromedriver 版本:- http://chromedriver.storage.googleapis.com/index.html

      所以尽量使用chromedriver支持的浏览器版本。

      【讨论】:

        【解决方案4】:

        http://code.google.com/p/selenium/downloads/list 下载 ChromeDriver.exe,然后像这样添加系统属性:

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

        【讨论】:

        • 您好,我很好奇这个驱动程序与 org.openqa.selenium.chrome.ChromeDriver 有何不同?
        • ChromeDriver 使用 chromedriver.exe 与 Chrome 交互。 org.openqa.selenium.chrome.ChromeDriver 只是一种语言绑定,它允许您与 chromedriver.exe 交互,后者又与实际浏览器交互。
        • +1 如果是这样,那我们为什么要设置系统属性呢?我们没有为 FireFox 设置这个!
        • 我不能 100% 确定这是否是原因,但 ChromeDriver.exe 是由 Google 开发人员而不是 WebDriver/Selenium 团队开发的,所以我猜我认为这是集成问题。可能更容易同时开发两个项目?只是猜测!
        • 该属性应该是“webdriver.chrome.driver”(至少在 selenium 2.0rc3 中)
        【解决方案5】:

        只需从 [http://code.google.com/ 下载 chromedriver_win32_13.0.775.0.zipselenium-server-standalone-2.0rc3.jar p/selenium/下载/列表][1]

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

        在端口 6668 上向集线器注册节点(例如)

        java -jar selenium-server-standalone-2.0rc3.jar -role webdriver -hub http://hubUrlHostname:4444/grid/register -port 6668 -browser "browserName=chrome,version=13.0,platform=windows" -Dwebdriver.chrome.driver=C:\drivers\chrome\chromedriver.exe
        

        如果你访问

        http://hubUrlHostname:4444/grid/console

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

        【讨论】:

          【解决方案6】:

          我能够通过像这样启动 selenium 服务器来使其工作:

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

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

          【讨论】:

          【解决方案7】:

          您是否确定您已从http://code.google.com/p/selenium/downloads/list 下载了 Chrome 驱动程序并将其放在您的PATH 中?

          查看http://code.google.com/p/selenium/wiki/ChromeDriver了解更多详情

          【讨论】:

          • 问题,为什么我们必须使用提示窗口来运行我们的测试,Selenium 2 还没有提供这个功能?
          • 你不需要运行它。这只是连接到远程实例时有用的一种使用方式。在本地做,你也可以只设置系统属性,让 WebDriver 负责启动等。
          • 您好,我很好奇这个驱动程序与 org.openqa.selenium.chrome.ChromeDriver 有何不同?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-10
          • 2022-01-28
          • 2018-05-23
          • 2014-04-03
          • 2015-07-11
          相关资源
          最近更新 更多