def open(driver: webdriver, group: str, element: str):
"""Open specific element that belongs to the group.
NOTE:
Some browsers (Firefox & IE) can cause problems when dealing with JS menus.
In order to move the cursor to the correct menu element before clicking on
it, the driver needs to be instructed to move the cursor to a visible menu
element that is not diagonally positioned in respect to the main menu.
It's because "moving" the cursor diagonally can cause driver to "lose"
the focus of the menu and which will make menu to fold.
"""
if "menu" in SECTIONS[group.lower()]:
# Open the menu by sending "Enter" key
menu_selector = SECTIONS[group.lower()]["menu"]
menu = driver.find_element_by_css_selector(menu_selector)
menu.send_keys(Keys.ENTER)
menu_item_selector = SECTIONS[group.lower()][element.lower()]
menu_item = find_element(driver, by_css=menu_item_selector)
wait_for_visibility(driver, by_css=menu_item_selector)
with assertion_msg("%s menu item: '%s' is not visible", group, element):
assert menu_item.is_displayed()
menu_item.click()
take_screenshot(
driver, NAME + " after clicking on: {} link".format(element))
评论列表
文章目录