【问题标题】:Getting error as "method chrome() is undefined for the type DesiredCapabilities"收到错误,因为“DesiredCapabilities 类型的方法 chrome() 未定义”
【发布时间】:2020-02-13 03:29:02
【问题描述】:

上下文:从下面的代码中获取错误作为方法 chrome 未定义:

package zapSeleniumIntegration;

import java.lang.reflect.Proxy;    
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

public class BrowserDriverFactory {

    static WebDriver driver;
    public static WebDriver createChromeDriver(Proxy proxy, String path) {
    // Set proxy in the chrome browser
    DesiredCapabilities capabilities = DesiredCapabilities.chrome();//Getting error as method chrome undefined
            capabilities.setCapability("127.0.0.1", 8080);
            // Set system property for chrome driver with the path
            System.setProperty("webdriver.chrome.driver", "C:\\Users\\kotla.naveen\\Desktop\\chromedriver.exe");
            capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
            ChromeOptions options = new ChromeOptions();
            options.merge(capabilities);
            return new ChromeDriver(options); 
    }
}

【问题讨论】:

    标签: java selenium selenium-chromedriver desiredcapabilities


    【解决方案1】:

    请改用以下行: DesiredCapabilities 能力 = new DesiredCapabilities();

    【讨论】:

      【解决方案2】:

      不推荐使用旧方法 Capabilities。 使用 ChromeOptions 对象并将其传递给 ChromeDriver() 构造函数。另外,你不需要使用options.merge(capabilities);,你可以使用options.setCapability(params, params)

      但是,您可以完全跳过 DesiredCapabilities,只使用带有 setCapability 方法的 ChromeOptions,如下所述:

      ChromeOptions options = new ChromeOptions();
      options.addArguments("disable-infobars");
      options.setAcceptInsecureCerts(true);
      options.setUnhandledPromptBehaviour(UnexpectedAlertBehaviour.ACCEPT);
      

      //设置预定义的能力——ACCEPT_SSL_CERTS值为true:

      options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
      

      //将chromeoption对象传递给ChromeDriver:

      WebDriver driver = new ChromeDriver(options);
      

      ************** 设置代理 ******************

      ChromeOptions options = new ChromeOptions();
      Proxy proxy = new Proxy();
      proxy.setAutodetect(false);
      proxy.setHttpProxy("proxy_url:port"); 
      proxy.setSslProxy("proxy_url:port");
      proxy.setNoProxy("no_proxy-var");
      
      options.setCapability("proxy", proxy); 
      driver = new ChromeDriver(options);
      

      【讨论】:

        猜你喜欢
        • 2019-12-08
        • 2015-04-23
        • 2019-12-18
        • 1970-01-01
        • 1970-01-01
        • 2021-11-08
        • 2016-06-27
        • 2016-04-17
        相关资源
        最近更新 更多