2013-06-28 145 views
0

我無法點擊通過Selenium Webdriver的隱藏鏈接。如何點擊通過Selenium Webdriver的隱藏鏈接

我使用下面的代碼:

WebElement dwnld = driver.findElement((By.xpath("////form[@id='aspnetForm']/div[6]/div[2]/div/table/tbody/tr[3]/td[2]/table/tbody/tr[2]/td/a"))); 
Actions builder = new Actions(driver); 
Action hoverAction = builder.click(dwnld).build(); 
hoverAction.perform(); 
+1

會發生什麼情況?什麼錯誤?有什麼例外?作爲Selenium的一般規則,如果用戶不能點擊它,那麼*既不*也不能Selenium。您必須從用戶角度思考 - 用戶如何使該鏈接可見?如果他們不能,那麼你有更大的問題。 – Arran

+0

異常: - org.openqa.selenium.ElementNotVisibleException:元素當前不可見,因此可能不會與其交互(警告:服務器未提供任何堆棧跟蹤信息) 命令持續時間或超時:14毫秒 –

+0

查看xpath,我很困惑你怎麼能夠找到那個元素。因爲你使用了四個'/'而不是兩個'/'。元素是否仍在搜索? – TDHM

回答

0

如果您不想點擊它由於某種原因,你可以使用JavaScript來一下就可以了(見JavaScriptExecutor)之前顯示的鏈接。

+0

一般行爲: - 如果我們拖動鼠標在那個地方,然後鏈接將顯示..我想顯示鏈接,然後點擊它。 –

+0

如果我正確理解你需要什麼,你應該懸停包含隱藏鏈接的可見元素,並對懸停事件作出反應。之後,鏈接變得可見,你將有可能點擊它。希望這個幫助 – user2525437

-1
String Block1 = driver.findElement(By.id("element ID")); 

JavascriptExecutor js1=(JavascriptExecutor)driver; 

js1.executeScript("$("+Block1+").css({'display':'block'});"); 
+3

歡迎來到堆棧溢出!儘管這段代碼可以解決這個問題,但[包括一個解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高您的帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! –

相關問題