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

Фотография

Как обнулять накапливаемые действия по управлению мышью?


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

#1 dolkons

dolkons

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 20 ноября 2013 - 05:57

Проблема такая. В цикле 500 раз выполняются одни и те же действия: (навести мышь на элемент, кликнуть, отвести курсор в сторону, зажать левую кнопку, сместить курсор).
При первом прогоне все хорошо, но когда цикл переходит на новую итерацию, то при вызове mouse.perform() выполняются все действия, которые были выполнены до этого.
Вот код:
while count_iteration>0:
            mouse = webdriver.ActionChains(driver)
            mouse.move_to_element(element_add_map).perform()
            element_add_map.click()
            mouse.move_by_offset(250,0)
            mouse.click_and_hold()
            mouse.move_by_offset(250,150)
            mouse.release()
            mouse.perform()
            element_cancel.click()
            count_iteration = count_iteration-1
Текст приведен не полностью, некоторые строки удалены, так как код довольно большой. Но в целом суть такая, как я описал выше. Выполняются все действия, затем на новой итерации при выполнении строчки
mouse.move_to_element(element_add_map).perform()
выполняются все действия, которые были выполнены на предыдущей итерации, а потом только данное. Возможно ли как-то обнулять накопленные действия?
  • 0

#2 dolkons

dolkons

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 20 ноября 2013 - 08:45

Уже разобрался, тему можно закрыть :)
  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 897 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 20 ноября 2013 - 08:57

Если разобрались в чем была проблема, напишите плс решение, чтобы другой человек мог найти ответ.
  • 0

#4 barancev

barancev

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

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


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

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

#5 dolkons

dolkons

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 20 ноября 2013 - 15:08

Я делал так. Так как все действия, которые я записываю, заносятся в ActionChains._Actions. То просто перед началом новой итерации я обнуляю _actions.
В моем случае это делалось так:
mouse._actions = []

  • 0

#6 barancev

barancev

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

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


Отправлено 21 ноября 2013 - 10:06

Не надо ничего очищать. Просто ещё раз выполните
mouse = webdriver.ActionChains(driver)

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

#7 dolkons

dolkons

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

  • Members
  • Pip
  • 16 сообщений
  • ФИО:Долгий Константин

Отправлено 21 ноября 2013 - 10:29

Ну да, можно и так, просто я создание нового "ActionChains" делал перед началом цикла, поэтому решил не менять. Ну вообщем путей несколько, кто какой выберет, так и сделает :)
  • 0


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

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