2012-04-12 2 views
1

У меня есть элемент холста на моей странице, и я хочу нажать на его часть. Я знаю, что я должен использовать ActionBuilder, чтобы сделать это, поэтому я судимый этот код:Webdriver. Нажмите на элемент холста по координатам

element = driver.find_element(:xpath, canvas_xpath) 
action.move_to(element, 100, 100).click.perform 

Но этот код нажмите только в центре холста элемента и не двигаться мышью в любом случае.

Есть ли другой способ перемещения мыши к некоторым координатам? (Не упоминайте сценарии AutoIT - я разрабатываю под Linux)

ответ

1

Вы попробовали action.move_to(element).move_by(100, 100).click.perform?

6

У меня такая же проблема в IE. Код ShockwaveNN работает для меня в Firefox и Chrome. Я думаю, проблема заключается в том, что клики «кликнуть» посередине элемента. Ниже приводится документация в action_builder.rb:

# 
    # Clicks in the middle of the given element. Equivalent to: 
    # 
    # driver.action.move_to(element).click 
    # 
    # When no element is passed, the current mouse position will be clicked. 
    # 
    # @example Clicking on an element 
    # 
    # el = driver.find_element(:id, "some_id") 
    # driver.action.click(el).perform 
    # 
    # @example Clicking at the current mouse position 
    # 
    # driver.action.click.perform 
    # 
    # @param [Selenium::WebDriver::Element] element An optional element to click. 
    # @return [ActionBuilder] A self reference. 
    # 

В соответствии с этим и мои выводы, это должно быть просто, чтобы выполнить эти действия в две строки, как:

element = driver.find_element(:xpath, canvas_xpath) 
driver.action.move_to(element, 100, 100).perform 
driver.action.click.perform 

или

element = driver.find_element(:xpath, canvas_xpath) 
driver.action.move_to(element).perform 
driver.action.move_by(100, 100).click.perform 

К сожалению, ничто из этого не работает (для меня в IE): (

+0

Я решил свою проблему в удаленном IE с этим: 'Селен :: WebDriver :: Дистанционные :: Возможности :: internet_explorer (: javascript_enabled => true,: native_events => true) ' – murtabak

0
+0

Написание ответа со ссылкой не является реальным ответом, потому что по мере того, как ссылка будет изменена/удалена, ответ будет завершен. – FraZer

Смежные вопросы