Как правильно составить код "options.addArguments("user-data-dir=/path/to/your/custom/profile");"

Приветстсвую всех. Мне нужно менять путь к профилю в моб.браузере Хром с помощью опции

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

описанной здесь - Capabilities & ChromeOptions - ChromeDriver - WebDriver for Chrome

Вот мой код, ошибок нет, но и не меняет путь, если посмотреть в браузере открыв chrome://version:

ChromeOptions Options = new ChromeOptions();
Options.AddArguments("user-data-dir=/data/data/com.android.chrome/app_chrome/Default1");
//chrOptions.AddArguments("--user-data-dir=/storage/emulated/0/Default1");
//chromeOptions.AddArguments("user-data-dir=/data/data/com.android.chrome/app_chrome/Default1");
//chromeOptions.AddArguments("user-data-dir=/data/user/0/com.android.chrome/app_chrome/Default1");
 
DesiredCapabilities cap = new DesiredCapabilities();
cap.SetCapability("deviceName", "Insta");
cap.SetCapability("udid", "5200ff6c4abf4545");
cap.SetCapability("platformVersion", "9.0.0");
cap.SetCapability("platformName", "Android");
cap.SetCapability("appPackage", "com.android.chrome");
cap.SetCapability("appActivity", "com.google.android.apps.chrome.Main");
cap.SetCapability("unicodeKeyboard", "true");
cap.SetCapability("noReset", "True");
cap.SetCapability("pageLoadStrategy", "normal");
cap.SetCapability("automationName","UiAutomator2");
cap.SetCapability("systemPort", 6009);
cap.SetCapability(ChromeOptions.Capability, "user-data-dir=/data/data/com.android.chrome/app_chrome/Default1");
//cap.SetCapability("chromeOptions", "--disable-popup-blocking");
//cap.SetCapability("chromeOptions", "--disable-popup-blocking");
// cap.SetCapability("chromeOptions", "user-data-dir=/path/to/your/custom/profile");
 
 
 
AndroidDriver<IWebElement> driver = new AndroidDriver<IWebElement>(new Uri("http://127.0.0.1:3009/wd/hub"), cap); // инициализируем экземпляр класса драйвера с настроечками
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(300));
 
 
System.Threading.Thread.Sleep(3000); // Ожидаем
driver.Navigate().GoToUrl("http://chrome://version");
System.Threading.Thread.Sleep(30000); // Ожидаем

Помогите написать правильный код для этой функции…

Конечно ваш код не работает.
Вы задаете и ChromeOptions и Сapabilities, при этом в конструткор драйвера передаете капабилитиес. Тоесть толку от того чо вы чтото задали в опциях нет.
В вашей же ссылке которую вы приводите есть пример как это делать.
Если вы чтото задаете в опциях -> оздавайте драйвер с опциями
Если вы чтото задаете в капабилити -> оздавайте драйвер с капабилити

1 лайк

Достаточно написать

ChromeOptions Options = new ChromeOptions();
Options.AddArguments("user-data-dir=/data/data/com.android.chrome/app_chrome/Default1");

ничего не задавая в Сapabilities? И все?

ChromeOptions можно привести к капабилити.

Можете привести пример?

capabilities.setCapability(ChromeOptions.CAPABILITY, options);

или

options.ToCapabilities() as DesiredCapabilities; 
2 лайка

Помогите запустить Хром с аргументами, хотел поменять путь к профилю, никак не получается

AppiumOptions cap = new AppiumOptions();
cap.AddAdditionalCapability("deviceName", "Redmi 7A");
cap.AddAdditionalCapability("platformName", "Android");
cap.AddAdditionalCapability("platformVersion", "9");
cap.AddAdditionalCapability("udid", "06b324d00206"); // testing device udid
cap.AddAdditionalCapability("unicodeKeyboard", true); // keyboard
cap.AddAdditionalCapability("noReset", true);
cap.AddAdditionalCapability("appPackage", "com.android.chrome"); // пространство имен используемое приложением
cap.AddAdditionalCapability("appActivity", "com.google.android.apps.chrome.Main"); // активное окно
cap.AddAdditionalCapability("automationName","UiAutomator2"); // automation name
cap.AddAdditionalCapability("systemPort", 6013);
cap.AddAdditionalCapability("pageLoadStrategy", "normal");


//Adding chrome options
ChromeOptions chrome_options = new ChromeOptions();
chrome_options.AddArgument("--incognito");
chrome_options.AddArgument("user-data-dir=/data/data/com.android.chrome/app_chrome/Test_Profile");
//chrome_options.AddArgument("--user-data-dir=/data/data/com.android.chrome/app_chrome/Test_Profile");

  // Adding Chrome options to AppiumOptions
cap.AddAdditionalCapability(ChromeOptions.Capability, chrome_options); // add chrome options


 
// START DRIVER with options
//AndroidDriver<AppiumWebElement> driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:3013/wd/hub"), cap);
IWebDriver driver = new RemoteWebDriver(new Uri("http://127.0.0.1:3013/wd/hub"), cap);


WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(300));
driver.Navigate().GoToUrl("http://chrome://version");");
System.Threading.Thread.Sleep(8000); // Ожидаем

Если менять на папку/путь которого не существует то будет путь по умолчанию.
я создал папку chrome в телефоне и установил user-data-dir=/storage/emulated/0/chrome
вот толку 0 ) как бы да в chrome://version видно изминения
вот только она всегда пустая, ничего не сохраняет.