2015-06-19 169 views
0

我遇到了問題,我需要點擊由JS觸發的元素的擴展功能。Selenium點擊外部元素(按鈕)

照片,示出了用戶界面:http://imgur.com/LUyYOy8

因此,當我將鼠標懸停在藍色按鈕,它會在底部顯示其他3周的形狀。這些形狀的html代碼不會顯示,直到鼠標懸停在它上面。我的方法是使用動作鏈懸停在藍色按鈕元素上,然後單擊該元素(以這種方式,我可以點擊下面的3個形狀)。

到目前爲止,我有:

Actions action = new Actions(driver); 
    action.moveToElement(elementPosition).build().perform(); 
    action.moveToElement(elementPosition, offsetx, offxety).click(); 

但我不能點擊位置的元素,是一種合適的方式來做到這一點?謝謝

回答

0

你能夠檢索三個按鈕的HTML代碼,一旦你讓他們可見?如果是這樣,您應該能夠分別使用WebDriver.findElement()和WebElement.click()來查找並單擊它們。

例如:

// Find the blue button 
WebElement blueButton = driver.findElement(By.id("blue")); 
// Hover over the blue button 
Actions action = new Actions(driver); 
action.moveToElement(blueButton).build().perform(); 

// Find the red button 
WebElement redButton = driver.findElement(By.id("red")); 
// Click the red button 
redButton.click(); 

// And so on... 

在這個例子中,它是你必須嘗試藍色按鈕已經盤旋後發現紅色按鈕

+0

感謝您的回覆。我之前嘗試過,但它不起作用,在我將鼠標懸停在大藍按鈕之上後,我嘗試打印出源代碼,下面的這些元素不在源代碼中。但是,在實際的Chrome瀏覽器中,它們正在顯示 – Kiddo