任何人都知道如何将鼠标悬停在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。
答案 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