【问题标题】:Error in a simple selenium script简单的硒脚本中的错误
【发布时间】:2015-07-05 10:48:50
【问题描述】:

我在使用它执行的相同 chromedriver 路径前一天尝试了相同类型的脚本,但是今天当我使用该路径尝试另一个脚本时,我收到了错误。

package ScriptsSelenium;

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


public class TextBox_EntData {
    public static void main(String[] args){
        WebDriver driver = new ChromeDriver(); 
        System.setProperty("webdriver.chrome.driver","C:\\Users\\Sneha\\Downloads\\chromedriver_win32\\chromedriver.exe");
        driver.get("http://www.gmail.com");
        driver.findElement(By.id("Email")).sendKeys("XXX@YYail.com");
        driver.findElement(By.id("Passwd")).sendKeys("XXXXXX");
        driver.findElement(By.id("signIn")).click();

这是我的错误

Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
    at com.google.common.base.Preconditions.checkState(Preconditions.java:197)
    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:110)
    at org.openqa.selenium.chrome.ChromeDriverService.access$0(ChromeDriverService.java:1)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:118)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:291)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:82)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:117)
    at ScriptsSelenium.TextBox_EntData.main(TextBox_EntData.java:10)

【问题讨论】:

    标签: java google-chrome selenium selenium-webdriver selenium-chromedriver


    【解决方案1】:

    检查您在指定路径中是​​否有 chromedriver.exe 文件,并为 Chrome 使用以下配置。

    DesiredCapabilitiesChromeOptions 类基本上允许您为浏览器设置一些选项(例如启动最大化的浏览器、设置 chromedriver 路径等)。

    System.setProperty("webdriver.chrome.driver", "res/chromedriver.exe");
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
    ChromeOptions options = new ChromeOptions();
    //this statement will not show any warnings when you launch chrome
    options.addArguments("test-type");
    //start a maximized window 
    options.addArguments("start-maximized");
    //this allows you to use a user profile
    //options.addArguments("user-data-dir=D:/temp/");
    capabilities.setCapability("chrome.binary","res/chromedriver.exe");
    capabilities.setCapability(ChromeOptions.CAPABILITY,options);
    WebDriver driver = new ChromeDriver(capabilities);
    

    【讨论】:

    • 路径是正确的,因为我对前面的脚本使用了相同的路径。我是硒的初学者。所以你能详细说明你的答案吗?上面的代码是什么意思?
    【解决方案2】:

    您只需要更改代码中的chromedriver.exe 路径语句执行。您需要在启动新的chromedriver 之前调用它。 换个方式

    System.setProperty("webdriver.chrome.driver","C:\\Users\\Sneha\\Downloads\\chromedriver_win32\\chromedriver.exe");
    WebDriver driver = new ChromeDriver(); 
    

    【讨论】:

    • 如果我执行它时没有更正它,它会显示错误。我该如何继续。
    猜你喜欢
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多