t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

chrome
appium
mobile
pattern
Теги: #<Tag:0x00007fb2fc643578> #<Tag:0x00007fb2fc643438> #<Tag:0x00007fb2fc6432f8> #<Tag:0x00007fb2fc6431b8>

(Ван Дамм) #1

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

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

описанной здесь - https://sites.google.com/a/chromium.org/chromedriver/capabilities

Вот мой код, ошибок нет, но и не меняет путь, если посмотреть в браузере открыв 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); // Ожидаем

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


(Vladislav Sobol) #2

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


(Ван Дамм) #3

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

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

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


(Alexandr D.) #4

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


(Ван Дамм) #5

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


(Ihor Kokhan) #6
capabilities.setCapability(ChromeOptions.CAPABILITY, options);

или

options.ToCapabilities() as DesiredCapabilities;