Получение ошибки, так как «метод chrome () не определен для типа DesiredCapabilities» - PullRequest
2 голосов
/ 16 октября 2019

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

1 Ответ

0 голосов
/ 16 октября 2019

Старый метод 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...