Van_Damm
(Ван Дамм)
12.Сентябрь.2019 12:42:20
#1
Приветстсвую всех. Мне нужно менять путь к профилю в моб.браузере Хром с помощью опции
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 лайк
Van_Damm
(Ван Дамм)
14.Сентябрь.2019 01:57:35
#3
Достаточно написать
ChromeOptions Options = new ChromeOptions();
Options.AddArguments("user-data-dir=/data/data/com.android.chrome/app_chrome/Default1");
ничего не задавая в Сapabilities? И все?
Noksa
(Alexandr D.)
14.Сентябрь.2019 08:47:19
#4
ChromeOptions можно привести к капабилити.
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
или
options.ToCapabilities() as DesiredCapabilities;
2 лайка
Van_Damm
(Ван Дамм)
26.Октябрь.2020 20:27:26
#7
Помогите запустить Хром с аргументами, хотел поменять путь к профилю, никак не получается
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 видно изминения
вот только она всегда пустая, ничего не сохраняет.