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

Фотография

Изменение профиля в процессе работы.


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

#1 jor77

jor77

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Владимир А

Отправлено 10 декабря 2013 - 15:46

Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
  • 0

#2 leipreachan

leipreachan

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

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

Отправлено 11 декабря 2013 - 08:37

Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?

эээ.. а у живого пользователя как это планируется делать? через about:config?
пожалуй, проще всего будет перекинуть сессию на новый браузер (скопировать куки, например)
  • 0

#3 ch_ip

ch_ip

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 097 сообщений
  • ФИО:Павел Абдюшев
  • Город:Москва


Отправлено 11 декабря 2013 - 20:10

Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?

Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?
  • 0

#4 jor77

jor77

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Владимир А

Отправлено 11 декабря 2013 - 21:58


Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?

Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?


Понимаю, что, наверное, этот вопрос прозвучал немного странно.
Попробую вкратце объяснить. Пользуюсь Python и FireFox
В Селениум Вебдрайвере есть такой момент, что после get, click, refresh - он ждет загрузки страницы и ни на что при этом не реагирует боле, пока не загрузит. Выйти из этого процесса можно установив set_page_load_timeout. Но! встречаются такие моменты (после click, например иногда) когда Селениум не понимает, что произошел тот самый клик и надо ждать загрузки страницы. При этом программа выполняется дальше, но при любом обращении к вебдрайверу происходит остановка и ожидание загрузки страницы. Но страница, бывает так, что вообще не загружается и висит, а в данной ситуации уже таймаут на загрузку страницы не срабатывает. В итоге получаем полное зависание.
Против всего этого непотребства нашел один вариант - использовать хитрую загрузку профиля с set_preference('webdriver.load.strategy','unstable'). Тогда, в общем-то, загрузку страницы можно не ждать, а сразу проверять наличие элементов на странице и работать с ними при появлении. Но и в этом варианте есть свои подводные камни - Например, когда обновляешь страницу, ищешь элементы, находишь их, но находишь их на СТАРОЙ странице, которая еще не обновилась, то есть ты не знаешь с какой страницы нашел элемент со старой, или с уже новой, так как не знаешь загрузилась ли уже страница. По крайней мере, я не нашел способа проверки загрузилась ли уже страница в этом режиме. Может кто-нить знает способ?
Вот я и подумал, что может быть можно было б менять в процессе работы этот параметр, чтобы, когда надо работать в "нестабильном" режиме, а когда надо - в нормальном

Вот... Сумбурно получилось :) Надеюсь, Вы что-нибудь поняли из моего потока сознания :)
Или я сам все усложняю и есть нормальные способы решения?
  • 0

#5 Master_lomaster

Master_lomaster

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

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

Отправлено 12 декабря 2013 - 05:51

Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?

Если я правильно поняла вопрос, мне кажется, можно сделать так: установить две копии FF в разные папки с разными профилями, каждую настроить как вам нужно. Если тест не сработал в "нормальном" режиме, сохранить куки и перекинуть их в браузер, который работает в "нестабильном" режиме.
  • 0

#6 leipreachan

leipreachan

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

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

Отправлено 12 декабря 2013 - 07:34



Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?

Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?


Понимаю, что, наверное, этот вопрос прозвучал немного странно.
Попробую вкратце объяснить. Пользуюсь Python и FireFox
В Селениум Вебдрайвере есть такой момент, что после get, click, refresh - он ждет загрузки страницы и ни на что при этом не реагирует боле, пока не загрузит. Выйти из этого процесса можно установив set_page_load_timeout. Но! встречаются такие моменты (после click, например иногда) когда Селениум не понимает, что произошел тот самый клик и надо ждать загрузки страницы. При этом программа выполняется дальше, но при любом обращении к вебдрайверу происходит остановка и ожидание загрузки страницы. Но страница, бывает так, что вообще не загружается и висит, а в данной ситуации уже таймаут на загрузку страницы не срабатывает. В итоге получаем полное зависание.
Против всего этого непотребства нашел один вариант - использовать хитрую загрузку профиля с set_preference('webdriver.load.strategy','unstable'). Тогда, в общем-то, загрузку страницы можно не ждать, а сразу проверять наличие элементов на странице и работать с ними при появлении. Но и в этом варианте есть свои подводные камни - Например, когда обновляешь страницу, ищешь элементы, находишь их, но находишь их на СТАРОЙ странице, которая еще не обновилась, то есть ты не знаешь с какой страницы нашел элемент со старой, или с уже новой, так как не знаешь загрузилась ли уже страница. По крайней мере, я не нашел способа проверки загрузилась ли уже страница в этом режиме. Может кто-нить знает способ?
Вот я и подумал, что может быть можно было б менять в процессе работы этот параметр, чтобы, когда надо работать в "нестабильном" режиме, а когда надо - в нормальном

Вот... Сумбурно получилось :) Надеюсь, Вы что-нибудь поняли из моего потока сознания :)
Или я сам все усложняю и есть нормальные способы решения?



Вы пытаетесь решить проблему не тем способом. Вам нужно научиться определять изменение страницы, ведь так?
Попробуйте рассуждать логически - как вы сам определяете, что она загрузилась? По изменению какого-то текста? По появлению элемента? По исчезновению элемента?
Вот от этого и надо писать тест.
  • 0

#7 jor77

jor77

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Владимир А

Отправлено 12 декабря 2013 - 17:51

Если я правильно поняла вопрос, мне кажется, можно сделать так: установить две копии FF в разные папки с разными профилями, каждую настроить как вам нужно. Если тест не сработал в "нормальном" режиме, сохранить куки и перекинуть их в браузер, который работает в "нестабильном" режиме.


Вариант интересный, но не для моего случая. Нужнов пределах, так сказать, одной сессии на странице что-либо делать.
  • 0

#8 jor77

jor77

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Владимир А

Отправлено 12 декабря 2013 - 18:11

Вы пытаетесь решить проблему не тем способом. Вам нужно научиться определять изменение страницы, ведь так?
Попробуйте рассуждать логически - как вы сам определяете, что она загрузилась? По изменению какого-то текста? По появлению элемента? По исчезновению элемента?
Вот от этого и надо писать тест.

Все так, за исключением одного "но". Приведу пример, чтоб понятней было:
Есть страница с капчей. я ввожу капчу и начинаю анализировать появилась ли следующая страница по появлению соответствующих элементов.
Но! Капчу можно решить неправильно и загружается не новая, а та же самая страница с капчей. И вот, все в шоке :)
Приходится еще и мониторить не появились ли те же элементы, что и на странице капчи. То есть, например, будем отслеживать - не появилась ли опять капча. Все бы хорошо, но вступает в силу очередной закон подлости :)
Прикол в том, что когда начинает грузиться страница, то старая еще не пропала, а некоторое время еще висит и Селениум может, как ни странно, с этой страницей работать. И как результат, он находит капчу, но не новую, а старую, и считает, что... да что угодно считает, но считает он это неправильно.
Это только лишь один из примеров тупиковых ситуаций.
Да, кстати, в цикле пробовал анализировать не пропал ли элемент (в нашем случае капча) в промежутке между сменами страниц и только потом запускать процедуру анализа какая страница загрузилась. Но и тут очередной прикол. Иногда, следующая страница появляется практически без паузы. То есть висит еще видимая старая, при этом грузится новая в фоне.. и в какой-то момент бах! - и отрисовалась новая. И Селениум не успевает отследить пропадание, и мы повисаем в бесконечном цикле. Ну, конечно, не бесконечном - из него выходим по прошествии какого-то времени, но все это время мы висим и гоняем впустую процессорное время :)
  • 0

#9 leipreachan

leipreachan

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

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

Отправлено 13 декабря 2013 - 07:38


Вы пытаетесь решить проблему не тем способом. Вам нужно научиться определять изменение страницы, ведь так?
Попробуйте рассуждать логически - как вы сам определяете, что она загрузилась? По изменению какого-то текста? По появлению элемента? По исчезновению элемента?
Вот от этого и надо писать тест.

Все так, за исключением одного "но". Приведу пример, чтоб понятней было:
Есть страница с капчей. я ввожу капчу и начинаю анализировать появилась ли следующая страница по появлению соответствующих элементов.
Но! Капчу можно решить неправильно и загружается не новая, а та же самая страница с капчей. И вот, все в шоке :)
Приходится еще и мониторить не появились ли те же элементы, что и на странице капчи. То есть, например, будем отслеживать - не появилась ли опять капча. Все бы хорошо, но вступает в силу очередной закон подлости :)
Прикол в том, что когда начинает грузиться страница, то старая еще не пропала, а некоторое время еще висит и Селениум может, как ни странно, с этой страницей работать. И как результат, он находит капчу, но не новую, а старую, и считает, что... да что угодно считает, но считает он это неправильно.
Это только лишь один из примеров тупиковых ситуаций.
Да, кстати, в цикле пробовал анализировать не пропал ли элемент (в нашем случае капча) в промежутке между сменами страниц и только потом запускать процедуру анализа какая страница загрузилась. Но и тут очередной прикол. Иногда, следующая страница появляется практически без паузы. То есть висит еще видимая старая, при этом грузится новая в фоне.. и в какой-то момент бах! - и отрисовалась новая. И Селениум не успевает отследить пропадание, и мы повисаем в бесконечном цикле. Ну, конечно, не бесконечном - из него выходим по прошествии какого-то времени, но все это время мы висим и гоняем впустую процессорное время :)


по пунктам:
1) страница с капчей не выдаёт сообщение "вы неправильно ввели капчу"? Это странно. Если выдаёт - можете на это ориентироваться. Если не выдаёт - следует подумать над этим, т.к. я бы сам удивился, если бы мне ничего не говорили, а просто перезагружали страницу.
2) Ориентируйтесь на src картинки с капчей. Перед вводом значения запоминайте её id, что угодно (обычно у неё адрес что-то вроде captcha.php?id=dkfjgkjdshf). Потом проверяйте, что он изменился. Или у вас капча имеет вид captcha.php ?
3) Если уж совсем туго, можете воспользоваться JS: добавляйте через document.body.addChildren какой-нибудь невидимый input type="hidden". Наверное, даже, его лучше прибавлять к футеру. Как только он исчезнет - страница начала перезагрузку.
4) Да, анализ "исчезновение - появление" может быть забагованным. Им пользоваться нужно оочень осторожно. Хороший JS-код может поменять DOM страницы достаточно быстро и селениум ничего не может с этим поделать.
тупиковых ситуаций не бывает =)

В firebug (и в стандартных девтулз Firefox) есть инструмент, который позволяет подсветить изменившиеся элементы. Попробуйте посмотреть, где происходят изменения.
  • 1

#10 jor77

jor77

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Владимир А

Отправлено 13 декабря 2013 - 08:10

по пунктам:
1) страница с капчей не выдаёт сообщение "вы неправильно ввели капчу"? Это странно. Если выдаёт - можете на это ориентироваться. Если не выдаёт - следует подумать над этим, т.к. я бы сам удивился, если бы мне ничего не говорили, а просто перезагружали страницу.
2) Ориентируйтесь на src картинки с капчей. Перед вводом значения запоминайте её id, что угодно (обычно у неё адрес что-то вроде captcha.php?id=dkfjgkjdshf). Потом проверяйте, что он изменился. Или у вас капча имеет вид captcha.php ?
3) Если уж совсем туго, можете воспользоваться JS: добавляйте через document.body.addChildren какой-нибудь невидимый input type="hidden". Наверное, даже, его лучше прибавлять к футеру. Как только он исчезнет - страница начала перезагрузку.
4) Да, анализ "исчезновение - появление" может быть забагованным. Им пользоваться нужно оочень осторожно. Хороший JS-код может поменять DOM страницы достаточно быстро и селениум ничего не может с этим поделать.
тупиковых ситуаций не бывает =)

В firebug (и в стандартных девтулз Firefox) есть инструмент, который позволяет подсветить изменившиеся элементы. Попробуйте посмотреть, где происходят изменения.


1. Выдает. Но можно ж ввести капчу и два и три раза неправильно, поэтому и это поле потом не меняется. Хотя там такой сайт, что чего угодно можно ждать :) Может и начальная страница подгрузиться внезапно :)
2. А вот за этот вариант большое спасибо! Что-то в голову не пришло сразу, что источник меняться может.
3. Интересная мысль, если будет туго - опробую :) Спасибо.

Да, тупиковых ситуаций, возможно и не бывает :) Но иногда просто не знаешь как из нее выкрутиться :) Может я и дошел бы сам до этого, но когда - черт его знает :) В данной ситуации (с капчей) я уже дошел до варианта сравнивать сами картинки - некрасиво, но вариант :)
  • 0

#11 leipreachan

leipreachan

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

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

Отправлено 13 декабря 2013 - 08:48


по пунктам:
1) страница с капчей не выдаёт сообщение "вы неправильно ввели капчу"? Это странно. Если выдаёт - можете на это ориентироваться. Если не выдаёт - следует подумать над этим, т.к. я бы сам удивился, если бы мне ничего не говорили, а просто перезагружали страницу.
2) Ориентируйтесь на src картинки с капчей. Перед вводом значения запоминайте её id, что угодно (обычно у неё адрес что-то вроде captcha.php?id=dkfjgkjdshf). Потом проверяйте, что он изменился. Или у вас капча имеет вид captcha.php ?
3) Если уж совсем туго, можете воспользоваться JS: добавляйте через document.body.addChildren какой-нибудь невидимый input type="hidden". Наверное, даже, его лучше прибавлять к футеру. Как только он исчезнет - страница начала перезагрузку.
4) Да, анализ "исчезновение - появление" может быть забагованным. Им пользоваться нужно оочень осторожно. Хороший JS-код может поменять DOM страницы достаточно быстро и селениум ничего не может с этим поделать.
тупиковых ситуаций не бывает =)

В firebug (и в стандартных девтулз Firefox) есть инструмент, который позволяет подсветить изменившиеся элементы. Попробуйте посмотреть, где происходят изменения.


1. Выдает. Но можно ж ввести капчу и два и три раза неправильно, поэтому и это поле потом не меняется. Хотя там такой сайт, что чего угодно можно ждать :) Может и начальная страница подгрузиться внезапно :)
2. А вот за этот вариант большое спасибо! Что-то в голову не пришло сразу, что источник меняться может.
3. Интересная мысль, если будет туго - опробую :) Спасибо.

Да, тупиковых ситуаций, возможно и не бывает :) Но иногда просто не знаешь как из нее выкрутиться :) Может я и дошел бы сам до этого, но когда - черт его знает :) В данной ситуации (с капчей) я уже дошел до варианта сравнивать сами картинки - некрасиво, но вариант :)



сравнивать картинки - вполне себе решение, я его приберёг для следующего ответа, вы сами до него раньше добрались =)

1. Да, но тогда поле со значением капчи у вас сброситься должно. Кука измениться должна. Да что угодно =)
  • 0


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

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