【问题标题】:selenium webdriver opening a screen by clicking a invisible link under main menuselenium webdriver通过单击主菜单下的不可见链接打开屏幕
【发布时间】:2014-01-08 18:04:58
【问题描述】:

我在 python 中使用 selenium web 驱动程序。在我的测试用例中,我有一个菜单,它打开一个子菜单(鼠标悬停,所以我使用 action_chains 来点击),当点击它时,它会移动到下一个屏幕。

在该屏幕中,我需要检查保存、删除、重置选项功能。但每当我执行单击任何这些按钮时,它也会单击该菜单并显示下拉菜单。

这个屏幕不是 frame.so 我不能使用 driver.switch_to_frame(frame_id)。 为什么我会得到这个,这个问题的解决方案是什么。

这是我的代码:(不是我使用的代码,但这与我的代码相同)

这是我的主标签 1 2 3 4(考虑到所有菜单都有子菜单)

无论打开什么新屏幕,都显示在此选项卡下方。这对我正在使用的所有屏幕都可见。

menu= menu element
submenu= sub menu element
hover = ActionChains(driver)
hover.move_to_element(menu).click()
hover.click(submenu)
hover.perform() 

现在会打开一个新屏幕,其中包含保存、重置选项

现在做以下事情:

1 st driver.find_element_by_id("要填写的字段").clear() driver.find_element_by_id("要填写的字段").send_keys(value)

第二次 driver.find_element_by_id("要填写的字段").clear() driver.find_element_by_id("要填写的字段").send_keys(value)

第三 driver.find_element_by_id("要填写的字段").clear() driver.find_element_by_id("要填写的字段").send_keys(value)

第 4 次 driver.find_element_by_id("要填写的字段").clear() driver.find_element_by_id("要填写的字段").send_keys(value)

现在我点击保存按钮。

driver.find_element_by_id("save").click()

在此期间发生此单击时会产生问题,它会再次单击菜单项并显示菜单项的下拉菜单。

【问题讨论】:

  • 你能发布一个链接到你正在抓取的网站和你正在使用的代码吗?
  • 我添加了我的代码视图...

标签: python selenium-webdriver mouseover


【解决方案1】:

您要问的是如何(如用户那样)移动鼠标来触发子菜单/下拉菜单。 (或者至少我认为这就是你的意思)

首先找到元素,然后使用 selenium 提供的鼠标悬停功能。然后将鼠标移动到下一个元素(例如保存、删除等)

这里是java中的一个例子,代码类似。 How to perform mouseover function in Selenium WebDriver using Java?

我相信 Frame 是指窗口的另一个实例,例如当弹出窗口或从页面锚点打开另一个站点时。

【讨论】:

  • 你说的第一点是绝对正确的。所有子菜单项都会打开不同的 html,因为我正在单击一个(这个 sudmenu 有鼠标悬停,所以我正在使用 Achains_chains)并显示该 html 屏幕。如果我在该 html 中执行单击按钮(输入类型 = 重置,类型 = 按钮),则再次执行该菜单项的单击并再次显示子菜单下拉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-28
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多