2013-04-04 123 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();