如何在Selenium Ruby中hover(mouseover)一个元素?
任何人都知道如何将鼠标hover在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。
我使用了driver.action.move_to(el).perform
,它与其他答案略有不同,所以我想我会把它包括在内为了完整性。
这对我有用:
driver.mouse.move_to el
原来答案是:
driver.move_to(el).perform
我忘记了.perform
。
您需要使用Selenium的Action Builder来访问更复杂的操作,例如hover(这是seanny123的答案所展示的)。
此外,如果您正在使用hover,则在进行下一个操作(例如,使用显式等待)之前,您需要动态等待它显示。
我举了一个如何做到这一点的例子 – 你可以在这里看到完整的文章。
hover元素:
driver.action.move_to(element).perform # eg driver.action.move_to(driver.find_element(css: 'a')).perform
要将元素hover在特定位置:
driver.action.move_to(element, mouse_x, mouse_y).perform # eg driver.action.move_to(driver.find_element(css: 'a'), 100, 100).perform