mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-08-27 05:57:04 +00:00
92 lines
3.0 KiB
Ruby
92 lines
3.0 KiB
Ruby
def check_value_control(element, property, property_value, value)
|
|
xpath = create_xpath(element, property, property_value)
|
|
|
|
app.gui.wait_for xpath
|
|
app.gui.value_is_equal xpath, value
|
|
end
|
|
|
|
def simulate_keyboard_event(keys, mask)
|
|
app.gui.simulate_keyboard_events cappuccino_key(keys), [cappuccino_key(mask)]
|
|
end
|
|
|
|
def simulate_click(type, element, property, property_value, mask)
|
|
xpath = create_xpath(element, property, property_value)
|
|
|
|
app.gui.wait_for xpath
|
|
|
|
if type == $mouse_double_click
|
|
app.gui.simulate_double_click xpath, [cappuccino_key(mask)]
|
|
elsif type == $mouse_right_click
|
|
app.gui.simulate_right_click xpath, [cappuccino_key(mask)]
|
|
else
|
|
app.gui.simulate_left_click xpath, [cappuccino_key(mask)]
|
|
end
|
|
end
|
|
|
|
def simulate_drag_and_drop(element, property, property_value, second_element, second_property, second_property_value, mask)
|
|
|
|
xpath1 = create_xpath(element, property, property_value)
|
|
xpath2 = create_xpath(second_element, second_property, second_property_value)
|
|
|
|
app.gui.simulate_dragged_click_view_to_view xpath1, xpath2, [cappuccino_key(mask)]
|
|
end
|
|
|
|
def simulate_scroll(element, property, property_value, times, mask, horizontal, vertical)
|
|
xpath = create_xpath(element, property, property_value)
|
|
delta_x = 0
|
|
delta_y = 0
|
|
|
|
if horizontal
|
|
delta_x = 1
|
|
end
|
|
|
|
if vertical
|
|
delta_y = 1
|
|
end
|
|
|
|
for i in 0..times.to_i
|
|
app.gui.simulate_scroll_wheel xpath, delta_x, delta_y, [cappuccino_key(mask)]
|
|
end
|
|
end
|
|
|
|
def select_pop_up_button_item(item_name, property, property_value)
|
|
simulate_click($mouse_left_click, "pop-up-button", property, property_value, [])
|
|
|
|
pop_up_button_xpath = create_xpath("pop-up-button", property, property_value)
|
|
|
|
pop_up_button_item_xpath = create_xpath("image-view-text", "text", item_name)
|
|
|
|
while !app.gui.wait_for_element(pop_up_button_item_xpath, 0.05) && app.gui.pop_up_button_can_scroll_up(pop_up_button_xpath)
|
|
simulate_keyboard_event("up-arrow", [])
|
|
end
|
|
|
|
while !app.gui.wait_for_element(pop_up_button_item_xpath, 0.05) && app.gui.pop_up_button_can_scroll_down(pop_up_button_xpath)
|
|
simulate_keyboard_event("down-arrow", [])
|
|
end
|
|
|
|
if not app.gui.wait_for(pop_up_button_item_xpath)
|
|
raise "Menu item #{item_name} not found !"
|
|
end
|
|
|
|
simulate_click($mouse_left_click, "image-view-text", "text", item_name, [])
|
|
end
|
|
|
|
def cappuccino_key(key)
|
|
if $key_mappings.has_key?(key)
|
|
key = $key_mappings[key]
|
|
end
|
|
|
|
return key
|
|
end
|
|
|
|
def create_xpath(element, property, property_value)
|
|
if !$cappuccino_control_mappings.has_key?(element)
|
|
raise "Element #{element} not found in the hash cappuccino_control_mappings. You should complete the hash $cappuccino_control_mappings in env.rb"
|
|
end
|
|
|
|
if !$property_mappings.has_key?(property)
|
|
raise "Property #{property} not found in the hash $property_mappings. You should complete the hash $property_mappings in env.rb"
|
|
end
|
|
|
|
return "//" + $cappuccino_control_mappings[element] + "["+ $property_mappings[property] +"='#{property_value}']"
|
|
end |