Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2015 20:45:56

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium hover()

Доброго времени суток дорогие формучане. Поомгите пожалуйста убрать постоянное исключение. Я хочу знать сколько валидных заявок есть, а в итоге я просто обрабатываю это исключение и не знаю сколько действительных заявок(нажатий на селектор)(этот кусок кода работает только с исключением)

    try:
        hover = ActionChains(driver).move_to_element(element_to_hover_over)
        time.sleep(2)
        driver.find_element_by_xpath(".//*[@id='add-friend']/div/span[text()='Добавить в друзья']").click()
        hover.perform()
        print 'Заявка отправлена'
    except:
         print 'Заявка отправлена но с исключением'

Вот код ошибки

Traceback (most recent call last):
  File "fotostranac.py", line 52, in <module>
    hover.perform()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 70, in perform
    action()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/action_chains.py", line 215, in <lambda>
    self._driver.execute(Command.MOVE_TO, {'element': to_element.id}))
AttributeError: 'NoneType' object has no attribute 'id'

Я не понимаю почему на hover() перестает работать. Хотя заявка отправляетя

Отредактировано Notan1310 (Янв. 9, 2015 20:47:45)

Офлайн

#2 Янв. 9, 2015 22:29:29

theproshin
Зарегистрирован: 2014-06-30
Сообщения: 7
Репутация: +  1  -
Профиль   Отправить e-mail  

selenium hover()

Ты сначала кликаешь по элементу, а потом выполняешь команду perform()
Попробуй так:

try:
        action = ActionChains(driver)
        action.move_to_element(element_to_hover_over).perform()
        time.sleep(2)
        driver.find_element_by_xpath(".//*[@id='add-friend']/div/span[text()='Добавить в друзья']").click()
        print 'Заявка отправлена'
    except:
         print 'Заявка отправлена но с исключением'

Офлайн

#3 Янв. 9, 2015 22:53:01

Notan1310
Зарегистрирован: 2014-09-14
Сообщения: 98
Репутация: +  0  -
Профиль   Отправить e-mail  

selenium hover()

Огромное спасибо theproshin за решение. К сожалению не успел до твоего решения дойти. Нашел в документаций то что нужно Документация hover…. Не понял почему сразу не применил.
Вот как стало

    try:
        hidden_submenu = driver.find_element_by_css_selector(".btn-inner.friendship-ctrl.friendship-request-ctrl>span")
        actions = ActionChains(driver)
        actions.move_to_element(menu).click()
        actions.click(hidden_submenu)
        actions.perform()
        print 'Заявка в друзья отправлена'
    except:
         print 'Нельзя добавить в друзья'

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version