2012-12-11 73 views
0

enter image description here無法在彈出窗口(不是主窗口)中單擊重疊元素,如何滾動它以查看?

正如你所看到的,我可以單擊第一個複選框(PRODUCT-323),但不能點擊second.After長
嘗試,我發現這是因爲第二個沒有滾動查看(是由工具設計還是bug?)。那麼如何滾動這個彈出div來確保第二次顯示?

實際上,我已經試過了,但未能

((JavascriptExecutor)driver).executeScript("document.getElementById("pupop").scrollTo(0,30)"); 

回答

0

難道ü嘗試的鍵盤選項?按Ctrl +向下箭頭通過腳本? 或者在最糟糕的情況下使用tab來關注該複選框..我以OpenScript和RFT這種方式工作。

1

您可以分享您使用的WebDriver版本嗎? 如果我沒有記錯,版本2.16左右有一個已知的問題,定位器沒有滾動到視圖中。原因在於,他們正在使用元素中心的位置座標來調整焦點,在這種情況下,中心是隱藏的。這在更高版本中得到了解決。

有幾種方法。 1)嘗試對完全隱藏的元素執行某些操作,這將使元素完全可見,並且您將能夠訪問它。 在這種情況下,嘗試訪問第3或第4行中的複選框,您將能夠將焦點放在那裏。然後訪問第二行。 2)做一個Driver.Manage()。Window.Maximize()[這是在C#]。這也將帶來元素。

避免使用兩個滾動條的窗口是一種很好的做法。通過最大化你將減少這種錯誤的窗口。

希望這是有用的。

+0

我使用硒2.25,這是一個div彈出,這個問題可以很容易地通過JavaScript是固定不主窗口 –

+0

。使用ExecuteJavascript方法並執行按鈕單擊操作。如果彈出窗口的大小可以調整,那麼我會建議將彈出窗口大小調整爲稍大。但是,如果它不可能,然後嘗試訪問第三行,說Driver.FindElements(By.CssSelector(「div.popup tr」))[3] .Click()。這會將第二行顯示出來。你將能夠執行你想要的實際行動。 –

0

1)點擊第二個複選框:您可以使用xpath來查找該元素。在xpath中,您可以輕鬆獲取每個複選框的錶行ID,這些複選框的ID將會增加。 2)滾動,你可以使用下面的代碼:

JavascriptExecutor js = (JavascriptExecutor) webdriver; 
js.executeScript("scroll(0,0);"); 
相關問題