我使用Selenium WebDriver並希望從網頁執行一些JavaScript。我發現了一些執行javascript的非常有用的帖子,並且取得了一些成功,儘管當我必須從頁面上的對象調用javascript時,我似乎很掙扎(我是新手,因此我的術語和基本理解可能是關?)。以下是在頁面上的JavaScript我想打電話:執行'.hover'Javascript在Selenium WebDriver
$j(".webGrid tr").hover(function() {
$j(this).find("#imgEdit").css("visibility", "visible");
}
而且我現在覺得我的兩個最接近的企圖是:
js.ExecuteScript("('.itemId').find('#imgEdit').css('visibility', 'visible')"); //1
js.ExecuteScript("(arguments[0]).find('#imgEdit').css('visibility', 'visible')", element); //2
誰能給我在哪裏,我錯了的想法?在第一種情況下,我得到一個「.itemId」.find不是函數和第二個參數[0] .find不是函數。我發現'find'是潛在的問題,但它在頁面的javascript文件中,所以我的理解有點問題。
首先,感謝您的間接回答,但是我一直這樣做。更多的情況是,這些行爲似乎並沒有引發正確的jscript迴應(但是你是對的,我應該努力通過行動來做到這一點)。 對於第二個答案,這是有幫助的,但是它現在提出了另一個問題,我怎麼能找到一個隱藏的img(或div持有隱藏的img)並將其可見性設置爲隱形。也許我應該添加更多的代碼? – Nashibukasan 2012-04-20 06:01:47
這隻會是直線上升的JavaScript。你有元素對象,它只是「arguments [0]」,那麼它就是使用javascript來修改html標籤的屬性。有幾種方法可以隱藏元素,因此您需要知道您需要做什麼才能隱藏元素。最簡單的情況下,javascript看起來像這樣:「arguments [0] .setAttribute(」style「,」display:block「)」或「arguments [0] .setAttribute(」style「,」visibility:visible「)」。一個不同的例子可能是,如果你需要改爲將元素的類修改爲可顯示元素的類。 – 2012-04-20 20:44:23
謝謝,現在對我來說更有意義。然而,我現在又遇到了另一個問題。我想展示的元素隱藏起來直到盤旋!我有一個解決方案,使用動作(我將光標移動到強制懸停呼叫的容器),所以我會使用它,但希望我可以用js來做到這一點!乾杯。 – Nashibukasan 2012-04-22 23:05:15