3

上下文:从以下代码中获取错误作为方法 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); 
    }
}
4

2 回答 2

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-10-16T12:26:26.290 回答
0

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

于 2022-02-02T22:29:26.223 回答