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

Публикации huckleberrys

5 публикаций создано huckleberrys (учитываются публикации только с 05 июля 2023)


#127610 Selenium ест 1 гиг памяти и вылетает

Отправлено автор: huckleberrys 27 февраля 2014 - 20:29 в Selenium - Functional Testing

Скорее всего это утечка памяти в фантоме - https://github.com/a...js/issues/11390.

Возможные варианты обхода:

  • Уменьшить количество экземпляров используемых страниц (объектов WebPage).
  • Вручную высвобождать память (для этого придется использовать нативный API phantomjs). Ghostdriver позволяет выполнять phantom скрипты.
  • Перезапускать phantomjs во время выполнения.

Должен сказать, что у меня в некоторых тестах фантом выжирал гиг и падал минут через 5, на самом обычном сайте - из-за не очень аккуратной работы с инстансами страниц, которые создавались на каждый чих. Комбинация пунктов 1 и 3 помогла.

а каким образом я могу уменьшить количество экземпляров используемых страниц? 




#127607 Selenium ест 1 гиг памяти и вылетает

Отправлено автор: huckleberrys 27 февраля 2014 - 18:59 в Selenium - Functional Testing

чистка кук и обновление страницы не помогает,  ghostdriver.log выдаёт 300 строк такого содержания

[ERROR - 2014-02-27T20:11:45.709Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1393531905658




#127606 Selenium ест 1 гиг памяти и вылетает

Отправлено автор: huckleberrys 27 февраля 2014 - 18:38 в Selenium - Functional Testing

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

 

1393424038-clip-28kb.png?nocache=1




#127490 Errno10054 и Errno 10061 URLerror при переходе между фреймами

Отправлено автор: huckleberrys 26 февраля 2014 - 07:25 в Selenium - Functional Testing

она возникает вообще случайно - то есть, то нет.. хз в чём дело, обработать не получается, в главном цикле exception: ловит все ошибки, а её нет, она вылетает и программа останавливается. 




#127488 Errno10054 и Errno 10061 URLerror при переходе между фреймами

Отправлено автор: huckleberrys 26 февраля 2014 - 06:40 в Selenium - Functional Testing

driver.switch_to_default_content()
driver.switch_to_frame(driver.find_elements_by_css_selector("iframe")[0])
if driver.find_element_by_id('captchaImg').is_displayed():
    cptchsid = driver.find_element_by_id('captchaImg').get_attribute('src')
    try:
        urllib.urlretrieve(cptchsid, 'captcha.png')
    except Exception as e:
        print 'Captcha Error:', e
    cptch = AntiGate(antigateKey.get(), 'captcha.png')
    print 'Captcha: ', str(cptch).decode('utf-8', 'ignore')
    driver.find_element_by_id('captchaKey').send_keys(str(cptch).decode('utf-8', 'ignore'))
    driver.find_element_by_css_selector('.box_controls_wrap div.button_blue button').click()
    driver.switch_to_default_content()
time.sleep(3)
driver.save_screenshot('sent.png')
f = open('success.txt', 'a')
f.write(url[0] + '\n')
f.close()
c_counter += 1

переключаюсь между фреймами а потом возвращаюсь к основной страничке .switch_to_default_content().

на некоторых сайтах возникает такая ошибка [Errno 10054] сразу вместе с этойURLError urlopen error Errno 10061 когда я пытаюсь сменить фрейм на дефолтный.

пытался обработать

except socket.error as e:
    print 'Socket Error:', e
    continue

но не работает, сам код находится в цикле, в случае ошибки я должен продолжать со след итерации, первую ошибку получилось, но потом сразу идёт Errno 10061 которая вообще ни на что не реагирует...

как быть?