本文整理汇总了Python中cfme.web_ui.Tree.click_path方法的典型用法代码示例。如果您正苦于以下问题:Python Tree.click_path方法的具体用法?Python Tree.click_path怎么用?Python Tree.click_path使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cfme.web_ui.Tree
的用法示例。
在下文中一共展示了Tree.click_path方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: click_on_saved_reports
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def click_on_saved_reports(self):
self.accordion.accordion_by_name("Saved Reports").click()
self._wait_for_results_refresh()
from cfme.web_ui import Tree
tree = Tree("//tr[@title='All Saved Reports']/../..")
tree.click_path("All Saved Reports")
return VirtualIntelligence.SavedReportsSection(self.testsetup)
示例2: reorder_elements
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def reorder_elements(self, tab, box, *element_data):
sel.force_navigate('service_dialog_edit', context={'dialog': self})
if version.current_version() > "5.5":
tree = accordion.tree("Dialog")
else:
tree = Tree("dialog_edit_treebox")
tree.click_path(self.label, tab, box)
list_ele = []
for each_element in element_data:
list_ele.append(each_element.get("ele_label"))
ele_1 = self.element(list_ele[0])
ele_2 = self.element(list_ele[1])
sel.drag_and_drop(ele_1, ele_2)
sel.click(form_buttons.save)
flash.assert_no_errors()
示例3: tree
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def tree(name, *path):
"""Get underlying Tree() object. And eventually click path.
If the accordion is not active, will be clicked.
Attention! The object is 'live' so when it's obscured, it won't work!
Usage:
accordion.tree("Something").click_path("level 1", "level 2")
accordion.tree("Something", "level 1", "level 2") # is the same
Args:
*path: If specified, it will directly pass these parameters into click_path of Tree.
Otherwise it returns the Tree object.
"""
click(name)
tree = Tree(
sel.first_from(
# Current tree
"../../div[contains(@class, 'dhxcont_global_content_area')]//"
"ul[@class='dynatree-container']",
# Legacy tree
"../../div[contains(@class, 'dhxcont_global_content_area')]//"
"div[@class='containerTableStyle']//table[not(ancestor::tr[contains(@style,'none')])]",
root=sel.element(locate(name))
)
)
if path:
return tree.click_path(*path)
else:
return tree
示例4: tree
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def tree(name, *path):
"""Get underlying Tree() object. And eventually click path.
If the accordion is not active, will be clicked.
Attention! The object is 'live' so when it's obscured, it won't work!
Usage:
accordion.tree("Something").click_path("level 1", "level 2")
accordion.tree("Something", "level 1", "level 2") # is the same
Args:
*path: If specified, it will directly pass these parameters into click_path of Tree.
Otherwise it returns the Tree object.
"""
try:
if not is_active(name):
click(name)
except AccordionItemNotFound:
click(name)
el = sel.element(
# | for only single query
"|".join([
# Current tree for 5.4 (still with dhx)
"../../div[contains(@class, 'dhxcont_global_content_area')]//"
"ul[@class='dynatree-container']",
# Newer accordion tree
"../../..//div[@class='panel-body']//ul[@class='dynatree-container']"]),
root=sel.element(locate(name)))
tree = Tree(el)
if path:
return tree.click_path(*path)
else:
return tree
示例5: tree
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def tree(name, *path):
"""Get underlying Tree() object. And eventually click path.
If the accordion is not active, will be clicked.
Attention! The object is 'live' so when it's obscured, it won't work!
Usage:
accordion.tree("Something").click_path("level 1", "level 2")
accordion.tree("Something", "level 1", "level 2") # is the same
Args:
*path: If specified, it will directly pass these parameters into click_path of Tree.
Otherwise it returns the Tree object.
"""
try:
if not is_active(name):
click(name)
except AccordionItemNotFound:
click(name)
root_element = sel.element(locate(name))
if sel.is_displayed(DYNATREE, root=root_element):
# Dynatree detected
tree = Tree(sel.element(DYNATREE, root=root_element))
elif sel.is_displayed(TREEVIEW, root=root_element):
# treeview detected
el = sel.element(TREEVIEW, root=root_element)
tree_id = sel.get_attribute(el, 'id')
tree = BootstrapTreeview(tree_id)
if path:
return tree.click_path(*path)
else:
return tree
示例6: update_element
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def update_element(self, second_element, element_data):
navigate_to(self, 'Edit')
if version.current_version() > "5.5":
tree = accordion.tree("Dialog")
else:
tree = Tree("dialog_edit_treebox")
tree.click_path(self.label, self.tab_label, self.box_label)
self.add_element(second_element)
list_ele = []
list_ele.append(element_data.get("ele_label"))
list_ele.append(second_element.get("ele_label"))
tree.click_path(self.label, self.tab_label, self.box_label)
ele_1 = self.element(list_ele[0])
ele_2 = self.element(list_ele[1])
sel.drag_and_drop(ele_1, ele_2)
sel.click(form_buttons.save)
flash.assert_no_errors()
示例7: tree
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
def tree(name, *path):
"""Get underlying Tree() object. And eventually click path.
If the accordion is not active, will be clicked.
Attention! The object is 'live' so when it's obscured, it won't work!
Usage:
accordion.tree("Something").click_path("level 1", "level 2")
accordion.tree("Something", "level 1", "level 2") # is the same
Args:
*path: If specified, it will directly pass these parameters into click_path of Tree.
Otherwise it returns the Tree object.
"""
try:
if not is_active(name):
logger.debug('Clicking accordion item %s because it is not active.', name)
click(name)
except AccordionItemNotFound:
logger.debug('Clicking accordion item %s because AccordionItemNotFound raised.', name)
click(name)
locator = locate(name)
# Wait a bit for any of the trees to appear
wait_for(
lambda: sel.is_displayed(ANY_TREE, root=locator),
quiet=True, silent_failure=True, delay=0.2, timeout=5)
if sel.is_displayed(DYNATREE, root=locator):
# Dynatree detected
tree = Tree(sel.element(DYNATREE, root=locator))
elif sel.is_displayed(TREEVIEW, root=locator):
# treeview detected
el = sel.element(TREEVIEW, root=locator)
tree_id = sel.get_attribute(el, 'id')
tree = BootstrapTreeview(tree_id)
else:
raise TypeError('None of the supported trees was detected.')
if path:
return tree.click_path(*path)
else:
return tree
示例8: isinstance
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
the item in the path that was missing was the last item."""
data = e.args[0] # the data mapping
return isinstance(e, exceptions.CandidateNotFound) and data['index'] == len(data['path']) - 1
def open_order_dialog_func(_):
datastore_tree()
cfg_btn("Edit Priority Order of Domains")
nav.add_branch(
'automate_explorer',
{
'automate_explorer_tree_path':
[lambda context:
context.tree_item.navigate_tree() if context.tree_item is not None
else tree.click_path('Datastore'),
{
'automate_explorer_table_select':
[lambda ctx: table_select(ctx['table_item'].name_in_table),
{
'automate_explorer_edit':
lambda context: context.tree_item.nav_edit(),
'automate_explorer_delete':
lambda _: cfg_btn('Remove selected Items', invokes_alert=True)}],
'automate_explorer_namespace_new': lambda _: cfg_btn('Add a New Namespace'),
'automate_explorer_domain_new': lambda _: cfg_btn('Add a New Domain'),
'automate_explorer_class_new': lambda _: cfg_btn('Add a New Class'),
"automate_explorer_domain_edit": lambda _: cfg_btn("Edit this Domain"),
'automate_explorer_method_edit': lambda _: cfg_btn('Edit this Method'),
'automate_explorer_instance_edit': lambda _: cfg_btn('Edit this Instance'),
示例9:
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
("add_button", (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Add']")),
("save_button", (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Save Changes']")),
("reset_button", (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Reset Changes']")),
("cancel_button", (By.CSS_SELECTOR, "div#buttons_off > ul#form_buttons > li > img[title='Cancel']")),
]
)
nav.add_branch(
"chargeback",
{
"chargeback_rates": [
nav.fn(partial(accordion.click, "Rates")),
{
"chargeback_rates_compute": [
lambda d: rate_tree.click_path("Rates", "Compute"),
{"chargeback_rates_compute_new": tb_select_new_chargeback},
],
"chargeback_rates_compute_named": [
lambda d: rate_tree.click_path("Rates", "Compute", d["chargeback"].description),
{"chargeback_rates_compute_edit": tb_select_edit_chargeback},
],
"chargeback_rates_storage": [
lambda d: rate_tree.click_path("Rates", "Storage"),
{"chargeback_rates_storage_new": tb_select_new_chargeback},
],
"chargeback_rates_storage_named": [
lambda d: rate_tree.click_path("Rates", "Storage", d["chargeback"].description),
{"chargeback_rates_storage_edit": tb_select_edit_chargeback},
],
},
示例10: Tree
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
visible_tree = Tree("//div[@class='dhxcont_global_content_area']"
"[not(contains(@style, 'display: none'))]/div/div/div"
"/ul[@class='dynatree-container']")
menu.nav.add_branch(
"services_workloads",
{
"service_vms_instances":
[
lambda _: accordion.tree("VMs & Instances", "All VMs & Instances"),
{
"service_vms_instances_filter_folder":
[
lambda ctx: visible_tree.click_path(ctx["folder_name"]),
{
"service_vms_instances_filter":
lambda ctx: visible_tree.click_path(ctx["filter_name"])
}
]
}
],
"service_templates_images":
[
lambda _: (accordion.tree("Templates & Images", "All Templates & Images")),
{
"service_templates_images_filter_folder":
[
lambda ctx: visible_tree.click_path(ctx["folder_name"]),
示例11:
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
('add_btn', "//img[@alt='Move selected VMs to left']"),
('remove_btn', "//img[@alt='Move selected VMs to right']"),
('remove_all_btn', "//img[@alt='Move all VMs to right']"),
])
nav.add_branch(
"clouds_instances",
{
"clouds_instances_by_provider":
[
lambda _: accordion.tree("Instances by Provider", "Instances by Provider"),
{
"clouds_instances_provider_branch":
[
lambda ctx: visible_tree.click_path(ctx["provider_name"]),
{
"availability_zone_branch":
[
lambda ctx: visible_tree.click_path(ctx["availability_zone"]),
{
"clouds_instance_obj":
lambda ctx: visible_tree.click_path(ctx["instance_name"])
}
]
}
],
"clouds_instances_archived_branch":
[
lambda ctx: visible_tree.click_path('<Archived>'),
示例12: Select
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
("tag_category", Select("select#cbtag_cat")),
# Common - selection table
("selections", AssignFormTable({
LOWEST: (
"//div[@id='cb_assignment_div']/fieldset/table[contains(@class, 'style1')]"
"/tbody/tr/td/table"),
"5.4": "//div[@id='cb_assignment_div']/table[contains(@class, 'table')]",
})),
('save_button', form_buttons.save)])
nav.add_branch('chargeback',
{'chargeback_rates':
[nav.fn(partial(accordion.click, "Rates")),
{'chargeback_rates_compute':
[lambda d: rate_tree.click_path('Rates', 'Compute'),
{'chargeback_rates_compute_new': tb_select_new_chargeback}],
'chargeback_rates_compute_named':
[lambda d: rate_tree.click_path('Rates', 'Compute', d['chargeback'].description),
{'chargeback_rates_compute_edit': tb_select_edit_chargeback}],
'chargeback_rates_storage':
[lambda d: rate_tree.click_path('Rates', 'Storage'),
{'chargeback_rates_storage_new': tb_select_new_chargeback}],
'chargeback_rates_storage_named':
[lambda d: rate_tree.click_path('Rates', 'Storage', d['chargeback'].description),
{'chargeback_rates_storage_edit': tb_select_edit_chargeback}]}],
'chargeback_assignments':
[nav.fn(partial(accordion.click, "Assignments")),
{'chargeback_assignments_compute':
lambda d: assignment_tree.click_path('Assignments', 'Compute'),
'chargeback_assignments_storage':
示例13: make_button
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
'cancel_button': make_button("Cancel"),
'add_button': make_button("Add"),
},
identifying_loc="//div[@id='buttons_on']/ul[@id='form_buttons']",
)
records_table = Table("//div[@id='records_div']/table[@class='style3']")
nav.add_branch("configuration",
{
"configuration_settings":
[
lambda _: accordion.click("Settings"),
{
"cfg_settings_region":
lambda _: settings_tree.click_path("Region: Region"),
"cfg_settings_defaultzone":
lambda _: settings_tree.click_path("Region: Region", "Zones", "Default Zone"),
"cfg_settings_schedules":
[
lambda _: settings_tree.click_path("Region: Region", "Schedules"),
{
"cfg_settings_schedule":
[
lambda ctx: records_table.click_cell("name", ctx["schedule_name"]),
{
"cfg_settings_schedule_edit":
lambda _: tb.select("Configuration", "Edit this Schedule")
}
示例14: _mkitem
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
('storage_fixed_1', _mkitem(0)),
('storage_fixed_2', _mkitem(1)),
('storage_alloc', _mkitem(2)),
('storage_used', _mkitem(3)),
('add_button', (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Add']")),
('save_button', (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Save Changes']")),
('reset_button', (By.CSS_SELECTOR, "ul#form_buttons > li > img[title='Reset Changes']")),
('cancel_button', (By.CSS_SELECTOR,
"div#buttons_off > ul#form_buttons > li > img[title='Cancel']"))])
nav.add_branch('chargeback',
{'chargeback_rates':
[nav.fn(partial(accordion.click, "Rates")),
{'chargeback_rates_compute':
[lambda d: rate_tree.click_path('Rates', 'Compute'),
{'chargeback_rates_compute_new': tb_select_new_chargeback}],
'chargeback_rates_compute_named':
[lambda d: rate_tree.click_path('Rates', 'Compute', d['chargeback'].description),
{'chargeback_rates_compute_edit': tb_select_edit_chargeback}],
'chargeback_rates_storage':
[lambda d: rate_tree.click_path('Rates', 'Storage'),
{'chargeback_rates_storage_new': tb_select_new_chargeback}],
'chargeback_rates_storage_named':
[lambda d: rate_tree.click_path('Rates', 'Storage', d['chargeback'].description),
{'chargeback_rates_storage_edit': tb_select_edit_chargeback}]}],
'chargeback_assignments': nav.fn(partial(accordion.click, "Assignments"))})
HOURLY = 'hourly'
DAILY = 'daily'
示例15: Calendar
# 需要导入模块: from cfme.web_ui import Tree [as 别名]
# 或者: from cfme.web_ui.Tree import click_path [as 别名]
('retirement_date_text', Calendar("miq_date_1")),
('retirement_warning_select', Select("//select[@id='retirement_warn']"))
])
retire_remove_button = "//span[@id='remove_button']/a/img"
nav.add_branch(
'infrastructure_virtual_machines',
{
"infra_vm_and_templates":
[
lambda _: accordion.tree("VMs & Templates", "All VMs & Templates"),
{
"vm_templates_provider_branch":
[
lambda ctx: visible_tree.click_path(ctx["provider_name"]),
{
"datacenter_branch":
[
lambda ctx: visible_tree.click_path(ctx["datacenter_name"]),
{
"infra_vm_obj": lambda ctx: visible_tree.click_path(ctx["vm_name"]),
}
],
}
],
"vm_templates_archived_branch":
[
lambda ctx: visible_tree.click_path("<Archived>"),
{