首页 > 解决方案 > 试图在 Sauce Labs 中运行一个 Eclipse JAVA 程序。但是构造函数和远程 webdriver 出现问题。

问题描述

写在下面的代码以在 Sauce Labs 中运行 eclipse 程序。工作流显示问题“构造函数 Remote WebDriver(String, DesiredCapabilities) 未定义”。

我仍然尝试运行该程序,然后出现以下问题。

线程“main”java.lang.Error 中的异常:未解决的编译问题:构造函数 RemoteWebDriver(URL, DesiredCapabilities) 未定义构造函数 URL(String) 在 sauceprog.main(sauceprog.java:40) 未定义

代码:

    import java.net.MalformedURLException;
    import org.openqa.selenium.By;
    import org.openqa.selenium.Keys;
    import org.openqa.selenium.remote.CommandExecutor;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.remote.RemoteWebDriver;

    import com.gargoylesoftware.htmlunit.javascript.host.URL;
    public class sauceprog
    {

    public static void main(String[] args) throws InterruptedException, MalformedURLException
    {
        String browser = "safari-saucelabs";
        String URL = "https://rpautomation4:27763475-7193-4984-8074-a4fe2f9982f7@ondemand.saucelabs.com:443/wd/hub";
        DesiredCapabilities caps = null;

    switch(browser.toLowerCase())
    {
    case "internetexplorer-win-saucelabs":
    caps = DesiredCapabilities.internetExplorer();
    caps.setCapability("platform", "Windows 10");
    caps.setCapability("version", "11.103");
    caps.setCapability("recordVideo", "false");
    caps.setCapability("screenResolution", "1024x768");
    break;
    case "chrome-win-saucelabs":
    caps = DesiredCapabilities.chrome();
    caps.setCapability("platform", "Windows 8");
    caps.setCapability("version", "69.0");
    caps.setCapability("recordVideo", "false");
    break;
    case "firefox-win-saucelabs":
    caps = DesiredCapabilities.firefox();
    caps.setCapability("platform", "Windows 8");
    caps.setCapability("version", "62.0");
    caps.setCapability("recordVideo", "false");
    default: 
        System.out.println("you passed incorrect values. Please check next time");
    }
    RemoteWebDriver driver = new RemoteWebDriver(URL,caps);
    driver.get("https://www.google.com");
    driver.findElement(By.name("q")).sendKeys("selenium");
    Thread.sleep(2000);
    driver.findElement(By.name("q")).sendKeys(Keys.ENTER);
    Thread.sleep(5000);
    driver.quit();
    }
    }

标签: seleniumselenium-webdriversaucelabsremotewebdriver

解决方案


您使用了不正确的导入语句。理想情况下,您的程序应该使用import java.net.URL;而不是import com.gargoylesoftware.htmlunit.javascript.host.URL;

我在下面发布了完整的更新代码片段:

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.MalformedURLException;
import java.net.URL;

public class sauceprog
{
    public static void main(String[] args) throws InterruptedException, MalformedURLException
    {
        String browser = "safari-saucelabs";
        String URL = "https://<sauce_user>:<key>@ondemand.saucelabs.com:443/wd/hub";
        DesiredCapabilities caps = null;

        switch(browser.toLowerCase())
        {
            case "internetexplorer-win-saucelabs":
                caps = DesiredCapabilities.internetExplorer();
                caps.setCapability("platform", "Windows 10");
                caps.setCapability("version", "11.103");
                caps.setCapability("recordVideo", "false");
                caps.setCapability("screenResolution", "1024x768");
                break;
            case "chrome-win-saucelabs":
                caps = DesiredCapabilities.chrome();
                caps.setCapability("platform", "Windows 8");
                caps.setCapability("version", "69.0");
                caps.setCapability("recordVideo", "false");
                break;
            case "firefox-win-saucelabs":
                caps = DesiredCapabilities.firefox();
                caps.setCapability("platform", "Windows 8");
                caps.setCapability("version", "62.0");
                caps.setCapability("recordVideo", "false");
            default:
                System.out.println("you passed incorrect values. Please check next time");
        }
        RemoteWebDriver driver = new RemoteWebDriver(new URL(URL),caps);
        driver.get("https://www.google.com");
        driver.findElement(By.name("q")).sendKeys("selenium");
        Thread.sleep(2000);
        driver.findElement(By.name("q")).sendKeys(Keys.ENTER);
        Thread.sleep(5000);
        driver.quit();
    }
}

另外,如果还没有完成,我建议您更新您的酱汁用户名和密钥。由于您公开发布了用户名和密钥,因此任何人都可以使用它们在您的帐户上运行他们的测试。


推荐阅读