我正在测试一个网站,该网站有一个菜单,悬停时会出现子菜单。
我创建了一个与此菜单交互的函数:
def go_to(navbar_item, menu_item):
# find the navbar item
assets_main_menu = driver.find_element(By.ID, navbar_item)
#hover over the navbar item, so the submenu appears
hover.move_to_element(assets_main_menu).perform()
# find the submenu item
xpath = "//*[contains(text(), \'" + menu_item + "\')]"
destination = driver.find_element_by_xpath(xpath)
# hover over the submenu item and clicks
hover.move_to_element(destination).click().perform()
问题是我多次使用这个函数,例如:
# action 1
go_to('navbar item1 id', 'submenu item1')
do_something()
# action 2
go_to('navbar item1 id', 'submenu item2')
do something()
# action 3
go_to('navbar item1 id', 'submenu item3')
do_something()
selenium 实际上重复了前面的步骤,遍历过去的菜单项,例如:
实际输出 动作 1,做某事 -> 动作 1,动作 2,做某事 -> 动作 1,动作 2,动作 3,做某事
相反,我期望的输出是:
动作 1,做某事 -> 动作 2,做某事 -> 动作 3,做某事
我尝试取消设置变量:
navbar_item、menu_item、悬停、xpath、目的地。
在函数结束时没有运气。
我还尝试在我的函数中实例化悬停
悬停= ActionChains(驱动程序);
但在最后一次尝试中,我的代码停止工作。
哆啦的时光机
相关分类