我正在使用 Webdriver 在 Python 中开发一个测试用例,以单击http://www.ym.com上的菜单项,而这个特定的测试用例旨在通过一个菜单项并单击一个子菜单项。
运行测试时,它看起来像是尝试访问嵌套的菜单项,但从不点击最后一项。这是我通过菜单的代码:
food = driver.find_element_by_id("menu-item-1654")
hov = ActionChains(driver).move_to_element(food).move_to_element(driver.find_element_by_xpath("/html/body/div[4]/div/div/ul/li[2]/ul/li/a")).click()
hov.perform()
这里的问题是我试图从“食物”菜单中单击“食谱”子菜单,但发生的情况是在“食谱”旁边的“旅行”菜单下单击“法国”子菜单。
我尝试使用 find_element_by_id、find_element_by_css_locator、find_element_by_link_text,但似乎总是选择 Travel 下的 France 子菜单,而不是 Food 下的 Recipes 子菜单。
有任何想法吗?
编辑
我现在正在使用这个 Python 代码来运行测试:
food = driver.find_element_by_xpath("//a[contains(@href, 'category/food/')]/..")
ActionChains(driver).move_to_element(food).perform()
WebDriverWait(driver, 5).until(lambda driver: driver.find_element_by_xpath("//a[contains(@href, 'category/recipes-2/')]/..")).click()
它在 IE 中运行良好,但在 Firefox 中仍然访问错误的菜单项。