Изменение профиля в процессе работы.
#1
Отправлено 10 декабря 2013 - 15:46
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
#2
Отправлено 11 декабря 2013 - 08:37
эээ.. а у живого пользователя как это планируется делать? через about:config?Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
пожалуй, проще всего будет перекинуть сессию на новый браузер (скопировать куки, например)
#3
Отправлено 11 декабря 2013 - 20:10
Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
#4
Отправлено 11 декабря 2013 - 21:58
Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?
Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
Понимаю, что, наверное, этот вопрос прозвучал немного странно.
Попробую вкратце объяснить. Пользуюсь Python и FireFox
В Селениум Вебдрайвере есть такой момент, что после get, click, refresh - он ждет загрузки страницы и ни на что при этом не реагирует боле, пока не загрузит. Выйти из этого процесса можно установив set_page_load_timeout. Но! встречаются такие моменты (после click, например иногда) когда Селениум не понимает, что произошел тот самый клик и надо ждать загрузки страницы. При этом программа выполняется дальше, но при любом обращении к вебдрайверу происходит остановка и ожидание загрузки страницы. Но страница, бывает так, что вообще не загружается и висит, а в данной ситуации уже таймаут на загрузку страницы не срабатывает. В итоге получаем полное зависание.
Против всего этого непотребства нашел один вариант - использовать хитрую загрузку профиля с set_preference('webdriver.load.strategy','unstable'). Тогда, в общем-то, загрузку страницы можно не ждать, а сразу проверять наличие элементов на странице и работать с ними при появлении. Но и в этом варианте есть свои подводные камни - Например, когда обновляешь страницу, ищешь элементы, находишь их, но находишь их на СТАРОЙ странице, которая еще не обновилась, то есть ты не знаешь с какой страницы нашел элемент со старой, или с уже новой, так как не знаешь загрузилась ли уже страница. По крайней мере, я не нашел способа проверки загрузилась ли уже страница в этом режиме. Может кто-нить знает способ?
Вот я и подумал, что может быть можно было б менять в процессе работы этот параметр, чтобы, когда надо работать в "нестабильном" режиме, а когда надо - в нормальном
Вот... Сумбурно получилось :) Надеюсь, Вы что-нибудь поняли из моего потока сознания :)
Или я сам все усложняю и есть нормальные способы решения?
#5
Отправлено 12 декабря 2013 - 05:51
Если я правильно поняла вопрос, мне кажется, можно сделать так: установить две копии FF в разные папки с разными профилями, каждую настроить как вам нужно. Если тест не сработал в "нормальном" режиме, сохранить куки и перекинуть их в браузер, который работает в "нестабильном" режиме.Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
#6
Отправлено 12 декабря 2013 - 07:34
Нет, так сделать нельзя. А для чего вам понадобилось менять профиль во время работы? Какую проблему вы хотите решить таким способом?
Добрый день, уважаемые!
Подскажите, пожалуйста, возможно ли изменение параметров загруженного профиля ФФ уже в процессе работы? То есть браузер запустился с одним профилем, а в потом, в процессе, потребовалось его изменить. Возможен ли такой маневр?
Понимаю, что, наверное, этот вопрос прозвучал немного странно.
Попробую вкратце объяснить. Пользуюсь Python и FireFox
В Селениум Вебдрайвере есть такой момент, что после get, click, refresh - он ждет загрузки страницы и ни на что при этом не реагирует боле, пока не загрузит. Выйти из этого процесса можно установив set_page_load_timeout. Но! встречаются такие моменты (после click, например иногда) когда Селениум не понимает, что произошел тот самый клик и надо ждать загрузки страницы. При этом программа выполняется дальше, но при любом обращении к вебдрайверу происходит остановка и ожидание загрузки страницы. Но страница, бывает так, что вообще не загружается и висит, а в данной ситуации уже таймаут на загрузку страницы не срабатывает. В итоге получаем полное зависание.
Против всего этого непотребства нашел один вариант - использовать хитрую загрузку профиля с set_preference('webdriver.load.strategy','unstable'). Тогда, в общем-то, загрузку страницы можно не ждать, а сразу проверять наличие элементов на странице и работать с ними при появлении. Но и в этом варианте есть свои подводные камни - Например, когда обновляешь страницу, ищешь элементы, находишь их, но находишь их на СТАРОЙ странице, которая еще не обновилась, то есть ты не знаешь с какой страницы нашел элемент со старой, или с уже новой, так как не знаешь загрузилась ли уже страница. По крайней мере, я не нашел способа проверки загрузилась ли уже страница в этом режиме. Может кто-нить знает способ?
Вот я и подумал, что может быть можно было б менять в процессе работы этот параметр, чтобы, когда надо работать в "нестабильном" режиме, а когда надо - в нормальном
Вот... Сумбурно получилось :) Надеюсь, Вы что-нибудь поняли из моего потока сознания :)
Или я сам все усложняю и есть нормальные способы решения?
Вы пытаетесь решить проблему не тем способом. Вам нужно научиться определять изменение страницы, ведь так?
Попробуйте рассуждать логически - как вы сам определяете, что она загрузилась? По изменению какого-то текста? По появлению элемента? По исчезновению элемента?
Вот от этого и надо писать тест.
#7
Отправлено 12 декабря 2013 - 17:51
Если я правильно поняла вопрос, мне кажется, можно сделать так: установить две копии FF в разные папки с разными профилями, каждую настроить как вам нужно. Если тест не сработал в "нормальном" режиме, сохранить куки и перекинуть их в браузер, который работает в "нестабильном" режиме.
Вариант интересный, но не для моего случая. Нужнов пределах, так сказать, одной сессии на странице что-либо делать.
#8
Отправлено 12 декабря 2013 - 18:11
Все так, за исключением одного "но". Приведу пример, чтоб понятней было:Вы пытаетесь решить проблему не тем способом. Вам нужно научиться определять изменение страницы, ведь так?
Попробуйте рассуждать логически - как вы сам определяете, что она загрузилась? По изменению какого-то текста? По появлению элемента? По исчезновению элемента?
Вот от этого и надо писать тест.
Есть страница с капчей. я ввожу капчу и начинаю анализировать появилась ли следующая страница по появлению соответствующих элементов.
Но! Капчу можно решить неправильно и загружается не новая, а та же самая страница с капчей. И вот, все в шоке :)
Приходится еще и мониторить не появились ли те же элементы, что и на странице капчи. То есть, например, будем отслеживать - не появилась ли опять капча. Все бы хорошо, но вступает в силу очередной закон подлости :)
Прикол в том, что когда начинает грузиться страница, то старая еще не пропала, а некоторое время еще висит и Селениум может, как ни странно, с этой страницей работать. И как результат, он находит капчу, но не новую, а старую, и считает, что... да что угодно считает, но считает он это неправильно.
Это только лишь один из примеров тупиковых ситуаций.
Да, кстати, в цикле пробовал анализировать не пропал ли элемент (в нашем случае капча) в промежутке между сменами страниц и только потом запускать процедуру анализа какая страница загрузилась. Но и тут очередной прикол. Иногда, следующая страница появляется практически без паузы. То есть висит еще видимая старая, при этом грузится новая в фоне.. и в какой-то момент бах! - и отрисовалась новая. И Селениум не успевает отследить пропадание, и мы повисаем в бесконечном цикле. Ну, конечно, не бесконечном - из него выходим по прошествии какого-то времени, но все это время мы висим и гоняем впустую процессорное время :)
#9
Отправлено 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) есть инструмент, который позволяет подсветить изменившиеся элементы. Попробуйте посмотреть, где происходят изменения.
#10
Отправлено 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. Интересная мысль, если будет туго - опробую :) Спасибо.
Да, тупиковых ситуаций, возможно и не бывает :) Но иногда просто не знаешь как из нее выкрутиться :) Может я и дошел бы сам до этого, но когда - черт его знает :) В данной ситуации (с капчей) я уже дошел до варианта сравнивать сами картинки - некрасиво, но вариант :)
#11
Отправлено 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. Да, но тогда поле со значением капчи у вас сброситься должно. Кука измениться должна. Да что угодно =)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных