Получение ошибки, так как метод chrome() не определен для типа DesiredCapabilities

Контекст: Получение ошибки, поскольку метод 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); 
    }
}

person Naveen Kumar    schedule 16.10.2019    source источник


Ответы (1)


Старый метод Capabilities устарел. Используйте объект ChromeOptions и передайте его конструктору ChromeDriver(). Кроме того, вам не нужно использовать вместо этого options.merge(capabilities);, вы можете использовать options.setCapability(params, params)

Однако вы можете полностью пропустить DesiredCapabilities и использовать только ChromeOptions с методом setCapability, как указано ниже:

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);
person Abhishek Dhoundiyal    schedule 16.10.2019