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

Фотография

Как изменить firefoxDriver.js


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

#1 skavans

skavans

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

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

Отправлено 02 февраля 2014 - 21:24

Здравствуйте!

 

Возник следующий вопрос: как изменить файл firefoxDriver.js? Не могу найти место, где он лежит. Или нужно качать исходники, в них менять этот файл и собирать из исходников?

Хочу удалить вот этот код:

if (currDomain.indexOf(cookie.domain) == -1) {  // Not quite right, but close enough
   throw new WebDriverError(ErrorCode.INVALID_COOKIE_DOMAIN,
       "You may only set cookies for the current domain");
 }

так как необходимо обойти валидацию домена во время установки cookies.

Спасибо за ответ!


  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 03 февраля 2014 - 07:11

Этот код убирать бесполезно, потому что всё равно установить cookie для другого домена не получится -- это запрещено, интерпретатор JavaScript выдаст ошибку, только она будет менее понятная.

 

Или есть ситуация, когда технически cookie устанавливается, но эта проверка мешает? Напишите, предложите, как её улучшить -- и мы это сделаем для всех.


  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 leipreachan

leipreachan

    Активный участник

  • Members
  • PipPip
  • 95 сообщений
  • Город:Москва

Отправлено 03 февраля 2014 - 09:49

если хотите проставить куки на домене вида *.вашдомен.com из кода, который выполняется на вашдомен.com, только по-быстрому, то по-быстрому так не получится:) создайте пустую страницу на нужном домене и проставляйте куки на ней.

либо используйте готовый профиль

 

 

Здравствуйте!

 

Возник следующий вопрос: как изменить файл firefoxDriver.js? Не могу найти место, где он лежит. Или нужно качать исходники, в них менять этот файл и собирать из исходников?

Хочу удалить вот этот код:

if (currDomain.indexOf(cookie.domain) == -1) {  // Not quite right, but close enough
   throw new WebDriverError(ErrorCode.INVALID_COOKIE_DOMAIN,
       "You may only set cookies for the current domain");
 }

так как необходимо обойти валидацию домена во время установки cookies.

Спасибо за ответ!


  • 0

#4 skavans

skavans

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

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

Отправлено 03 февраля 2014 - 19:50

Этот код убирать бесполезно, потому что всё равно установить cookie для другого домена не получится -- это запрещено, интерпретатор JavaScript выдаст ошибку, только она будет менее понятная.

 

Или есть ситуация, когда технически cookie устанавливается, но эта проверка мешает? Напишите, предложите, как её улучшить -- и мы это сделаем для всех.

Хм, а у меня получилось вроде.. На первый взгляд. По крайней мере со страницы about:blank смог выставить куку на яндекс, в браузере она появилась. Осталось проверить, будет ли она работать. Проверю сейчас, о результатах отпишусь.


  • 0

#5 skavans

skavans

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

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

Отправлено 03 февраля 2014 - 19:53

 

если хотите проставить куки на домене вида *.вашдомен.com из кода, который выполняется на вашдомен.com, только по-быстрому, то по-быстрому так не получится:) создайте пустую страницу на нужном домене и проставляйте куки на ней.

либо используйте готовый профиль

 

 

Здравствуйте!

 

Возник следующий вопрос: как изменить файл firefoxDriver.js? Не могу найти место, где он лежит. Или нужно качать исходники, в них менять этот файл и собирать из исходников?

Хочу удалить вот этот код:

if (currDomain.indexOf(cookie.domain) == -1) {  // Not quite right, but close enough
   throw new WebDriverError(ErrorCode.INVALID_COOKIE_DOMAIN,
       "You may only set cookies for the current domain");
 }

так как необходимо обойти валидацию домена во время установки cookies.

Спасибо за ответ!

 

Такой вариант не подходит, к сожалению. Cookies ставлю на сайт, к которому не имею прямого доступа. А профиль тяжелый, необходимо хранить большое количество различных комбинаций cookies. И он не кроссбраузерный, что мне тоже не подходит.


  • 0

#6 skavans

skavans

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

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

Отправлено 03 февраля 2014 - 20:10

Вот так все работает:

>>> from selenium import webdriver
>>> ff = webdriver.Firefox()
>>> ff.add_cookie({'domain': 'localhost', 'name': 'test', 'value': 123})
>>> ff.get('http://localhost:8888/')

Кука установилась. Думаю, что и для других доменов все будет в порядке.

Если нужно (и можно) - могу выложить модифицированый webdriver.xpi


  • 0

#7 leipreachan

leipreachan

    Активный участник

  • Members
  • PipPip
  • 95 сообщений
  • Город:Москва

Отправлено 05 февраля 2014 - 08:12

Вот так все работает:

>>> from selenium import webdriver
>>> ff = webdriver.Firefox()
>>> ff.add_cookie({'domain': 'localhost', 'name': 'test', 'value': 123})
>>> ff.get('http://localhost:8888/')

Кука установилась. Думаю, что и для других доменов все будет в порядке.

Если нужно (и можно) - могу выложить модифицированый webdriver.xpi

 

1) Вы можете ставить куки через JS - в тесте прямо модифицируете код страницы, добавляя к нему кусок JS, чтобы он ставил за вас нужные вам куки

2) Вы можете использовать BrowserMob, который будет встраивать JS ещё до селениума

 

с другой стороны, если вас устраивает перекомпиляция webdriver-а, то это тоже решение =)


  • 0


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

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