如何在Selenium Ruby中将鼠标悬停(mouseover)一个元素?

时间:2011-09-01 01:39:35

标签: ruby selenium automation

任何人都知道如何将鼠标悬停在Selenium Ruby Webdriver中的元素上?

我的代码是这样的:

el = driver.find_element(:css => "#foo")
driver.move_to el # How do I trigger a mouseover event on this element?

我在Linux 32位上使用selenium-webdriver gem和Firefox。

5 个答案:

答案 0 :(得分:5)

我使用的driver.action.move_to(el).perform与其他答案略有不同,所以我认为为了完整起见我会把它包括在内。

答案 1 :(得分:3)

原来答案是:

driver.move_to(el).perform

我忘记了.perform

答案 2 :(得分:3)

这对我有用:

driver.mouse.move_to el

答案 3 :(得分:1)

您需要使用Selenium's Action Builder来访问更复杂的操作,例如悬停(这就是seanny123&#39的答案所展示的内容)。

此外,如果您正在使用悬停,则在进行下一步操作之前,您需要动态等待它显示(例如,使用明确的等待)。

我汇总了一个如何执行此操作的示例 - 您可以看到完整的文章here

答案 4 :(得分:1)

悬停元素:

driver.action.move_to(element).perform
# e.g.    
driver.action.move_to(driver.find_element(css: 'a')).perform

将元素悬停在特定位置:

driver.action.move_to(element, mouse_x, mouse_y).perform
# e.g.    
driver.action.move_to(driver.find_element(css: 'a'), 100, 100).perform