2014-04-01 81 views
0

我有一個元素在點擊時觸發一些javascript。 部分覆蓋元素是一個大部分透明的圖形,它將所有事件傳遞給該元素。這樣,無論疊加層還是元素被單擊,元素都會獲取事件。Selenium:我怎樣才能點擊透明覆蓋?

我想在硒中編寫一個測試,單擊被測試的元素並驗證行爲,但是Chrome網絡驅動程序告訴我它不能單擊元素,因爲疊加層將獲得單擊事件。

這很好,但...我如何告訴硒我不在乎點擊反正?我不想特意點擊覆蓋圖(在這個測試中),覆蓋圖只是眼睛的糖果,所以即使我刪除了覆蓋圖,測試仍然可以正常工作。

編輯: 爲了清楚...我想要它點擊在任何地方有,如果覆蓋不存在。這樣,如果沒有疊加層,它將單擊該元素,但如果覆蓋,請單擊疊加層。

+2

我沒有寫代碼,使這將刪除在您的測試覆蓋的互動,我只是在猜測文檔。我不確定這會起作用。我假設你使用的是Java版本。您可以嘗試使用「Actions#moveToElement」方法移動到元素的位置,然後使用「Actions#click」單擊該位置。這裏是[相關的javadoc](http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/interactions/Actions.html)。你應該能夠找到任何其他語言的等價物。讓我知道這是否有幫助。 – toniedzwiedz

+0

@Tom,可以工作......也許我會重寫click方法來做到這一點,或什麼的。我會試試看,謝謝! –

回答

2

您將無法點擊疊加層下的對象,因爲Selenium已經被寫入只能訪問用戶可以訪問的內容。如果手動用戶無法點擊通過,那麼Selenium也無法點擊。

您既可以通過javascript_executor方法火的JavaScript直接在物體上,或者執行

+0

我意識到硒將無法點擊該元素,但這並不重要。 我希望它能點擊_spot_,就好像它可以點擊元素。 –

+0

@BryanHart:正如RobbiWareham所說的,如果用戶不知道你想要的東西 – xyz

+1

@Bryan,我認爲湯姆的想法是你唯一的方法。不知道會發生什麼。如果你只是想證明它不是可點擊的,那麼你可以使用其他屬性和方法 –