2013-04-04 57 views
2

编辑:如何移动光标在硒的webdriver

好吧,我已经检查了代码和它由一个jQuery插件渲染出来。

END

我试图将光标移动到<a \>,但问题是,元素不会被渲染,直到我选择的图像上物理移动鼠标指针。

我怎样才能移动到鼠标悬停在<a \>选择/点击?

FF version 20 
Selenium WebDriver version: 2.31.2.0 

当前代码

Actions actions = new Actions(driver); 

int locationX = Convert.ToInt32(ratingElementDiv[i].Location.X); 
int locationY = ratingElementDiv[i].Location.Y; 

actions.MoveToElement(WaitForElement(By.CssSelector(starElement)), locationX, locationY).Click().Perform(); 

我没有看到任何行动发生...任何帮助吗?

+1

悬停事件是否由CSS:悬停事件触发?如果是,那么您使用的是非本地事件(例如OSX中的FireFox)。如果前面两个问题的答案是肯定的,那么JavaScript将无法触发CSS:悬停事件,您需要本机实现。 – Ardesco 2013-04-04 07:58:41

+0

1+感谢您的信息,我必须检查悬停是否发生在CSS中,我会尽快回复您。 – 2013-04-04 13:12:56

+0

好吧,我已经检查了代码,并通过jquery小部件渲染出来......所以在这种情况下,我该怎么做? – 2013-04-04 13:35:32

回答

5

动作由3个步骤组成。

  • 配置
Actions builder = new Actions(driver); 
Point location ratingElementDiv[i].getLocation(); 
builder.MoveToElement(WaitForElement(By.CssSelector(starElement)), location.X, location.Y).click(); 

(我不知道点击)

  • 获得行动
Action selectLink = builder.build(); 
  • 执行
selectLink.perform(); 

尝试这一点,并告诉我,如果你仍然有一些问题。

+0

error:on builder.Build() - '不能将类型'OpenQA.Selenium.Interactions.IAction'隐式转换为'System.Action'' – 2013-04-04 14:00:10

+0

我使用'org.openqa.selenium.interactions。行动'我不能帮助你更多我真的不知道关于jQuery的东西;( – e1che 2013-04-04 14:06:19

+0

是否有可能有HTML? – e1che 2013-04-04 14:13:51

3

比方说,当你点击“选择你的测试”,你会看到多个元素(ABC,DEF,GHI等)的下拉菜单。你想选择ABC并点击它。使用以下。

driver.findElement(By.linkText("Select Your Test")).click(); 
new Actions(driver).moveToElement(driver.findElement(By.linkText("ABC"))).click().perform();