Перейти к содержимому

Фотография

CryptoProExt.crx


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Deltaletchik

Deltaletchik

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 13 января 2020 - 12:52

Всем, привет!

Не получается прописать в ChromeOptions - путь к CryptoProExt.crx( это Cades Plugin)

Сам плагин установлен и если зайти через браузер, Крипто-Про работает.

Если запустить тест, то не происходит обращение к Крипто-Про.

На компе файл этот не получается найти. В чем может быть причина?

Большое спасибо за помощь.


  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 13 января 2020 - 17:55

не пробоавли сохранить crx  (с пом https://crxextractor.com/)

и загружать base64 encoded data  через chrome options ? 


  • 0

#3 Deltaletchik

Deltaletchik

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 14 января 2020 - 07:50

нет, не пробовал. Буду узнавать как это сделать) Спасибо


  • 0

#4 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 14 января 2020 - 16:36

там нет никакой военной тайны  - можно спокойно гуглить

 

начинайте выполнять, а мы поможем - интересно например как именно вы используете CryptoPro экстеншн.


  • 0

#5 Deltaletchik

Deltaletchik

    Новый участник

  • Members
  • Pip
  • 10 сообщений

Отправлено 17 января 2020 - 12:45

т.е. получается, нужно само расширение упаковать в этот crx?

у меня создался файл моего расширения, но когда добавляю ссылку на этот сrx, то тест падает с ошибкой

 

вот сам тест:

public class FirstAutoTest {
@Test
public void firstTest() {
System.setProperty("webdriver.chrome.driver", "C:/Users//Documents/driver/chromedriver78.exe");
System.setProperty("webdriver.chrome.profile", "C:\\Users\\\\AppData\\Local\\Google\\Chrome\\User Data\\Default");
ChromeDriver driver = new ChromeDriver();
ChromeOptions options = new ChromeOptions();
options.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
options.addExtensions("C:\\Users\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\iifchhfnnmpdbibifmljnfjhpififfog\\1.2.7_0.crx");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(50, TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(50, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://www.site.ru/");
driver.findElementByLinkText("Вход в ЛК").click();
WebElement field = driver.findElement(By.xpath("//div[@id='contentWraper']//div[3]//div[3]"));
Actions actions = new Actions (driver);
actions.clickAndHold(field).build().perform();
driver.findElement(By.xpath("//div[@id='contentWraper']//div[3]//div[3]//div[1]//p[1]//a[1]")).click();
driver.findElement(By.xpath("//input[@id='btnSelectCert']")).click();

 

а это ошибка...

 
Error:(26, 16) java: no suitable method found for addExtensions(java.lang.String)
    method org.openqa.selenium.chrome.ChromeOptions.addExtensions(java.io.File...) is not applicable
      (varargs mismatch; java.lang.String cannot be converted to java.io.File)
    method org.openqa.selenium.chrome.ChromeOptions.addExtensions(java.util.List<java.io.File>) is not applicable
      (argument mismatch; java.lang.String cannot be converted to java.util.List<java.io.File>)
 
 
если что-то подскажите, буду благодарен!

  • 0

#6 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 17 января 2020 - 14:08

Deltaletchik



вот так (выдрано из моего класса кот сделан на осн  
 
 

List<String> chromeExtensionsBase64Encoded = new ArrayList<>();
    FileInputStream extensionFileInputStream = new FileInputStream(
extensionFile);
byte extensionData[] = new byte[(int) extensionFile.length()];
extensionFileInputStream.read(extensionData);


byte[] base64EncodedByteArray = Base64.encodeBase64(extensionData);


extensionFileInputStream.close();
chromeExtensionsBase64Encoded.add(new String(base64EncodedByteArray));

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addEncodedExtensions(chromeExtensionsBase64Encoded);

... потом

capabilities.setCapability(
org.openqa.selenium.chrome.ChromeOptions.CAPABILITY, chromeOptions);new WebDrierwrapperclass("chrome", capabilities) 
покажите как вы используете когда уже загружен - попробую

  • 0

#7 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 17 января 2020 - 21:55

Deltaletchik -  другой популярный вариант это подсовывать хрому профиль для работы -  в котором chrome extension уже установлено


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных