我正在使用ui自動化,並且最近發現了一個有趣的行爲。 有時我需要滾動到一些特定的元素,我一直在使用JS功能滾動到元素和actions.moveToElement(WebElement)滾動硒上的奇怪行爲
這似乎適用於任何複選框,文本框,按鈕類型的元素,但是當我需要移動到具有多列的表格單元格()時,請參閱該表格正在向左移動,這幾乎每次都會發生。假設有一張表格5x5,而且我只在第5列循環,當我通過這兩個函數中的任何一個來執行scroll2element時 - 整個表格都變得混亂了。所有以前的專欄都會消失,我的第5專欄會一路向左移動。
我找到了解決方法 - 而不是滾動到特定的表單元格,我滾動到位於該表頂部的按鈕,但出於好奇,如果有人遇到過這樣的問題,他們做了什麼?謝謝
您遇到可能是問題,因爲任何數量的事情。這可能是您正在使用的頁面的JavaScript中的一個錯誤(您已使用瞭解決方案)。這可能是因爲你沒有在做你認爲你正在使用Selenium腳本的做法。這將是一個時間問題(不等待正確的事件)。 – Louis
通常,我在創建驅動程序實例時將窗口設置爲最大化。它似乎解決了很多種類的滾動問題。 – Richard
好的,所以我的窗口被最大化了,當我滾動到元素時,我通過wait.until找到了這個元素(ExpectedConditions.visibilityOfElement(By ..)所以我非常確定它應該沒問題,即使我添加一些thread.sleep在驅動程序找到元素後,當我滾動到它時,我會看到這個問題。這是js函數:WebElement x = wait.until(ExpectedConditions.visibilityOfElementLocated(by)); ((JavascriptExecutor)驅動程序)。 executeScript( 「arguments [0] .scrollIntoView();」,x); action.moovetoelement也是這樣做的你是說在我的項目中有JS的錯誤嗎? – Gino