Как найти элемент, который виден только после прокрутки? - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть приложение SAP, и есть диалоговое окно, как показано ниже: **enter image description here**

html исходный код этого соответствующего диалогового окна: enter image description here

Как мы видим, когда я прокручиваю полосу, есть только 18 строк (показать с синей стрелкой в ​​пи c 1) html исходный код показывает еще 18 строк, так как только 18 строк может поместиться в диалоговом окне. Теперь я хочу прокрутить панель до последней и выбрать последний ряд поля. Как я могу это сделать ??

Я пытался использовать

public void waitForElement()
        {
            //IJavaScriptExecutor je = (IJavaScriptExecutor)StaticDriver.driver;
            //IWebElement element = StaticDriver.driver.FindElement(By.XPath("(//*[@class= 'slick-cell l0 r0 row_62 cid_col_0']//div)//following-sibling::div"));
            //je.ExecuteScript("arguments[0].scrollIntoView(true);", element);

            var element = StaticDriver.driver.FindElement(By.XPath("(//*[@class= 'slick-cell l0 r0 row_62 cid_col_0']//div)//following-sibling::div"));
            Actions actions = new Actions(StaticDriver.driver);
            actions.MoveToElement(element);
            actions.Perform();
        }

// that xpath is the element of last row.

, но я получил ошибку Element count be found

Как я могу прокрутить до последнего и найти элемент?

Исходный код View и html для последнего элемента:

enter image description here

HTML КОД ИСТОЧНИКА: enter image description here

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Попробуйте с помощью JavaScript Executor прокрутить до конца страницы:

 js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
0 голосов
/ 22 апреля 2020

Ответ выше должен работать, если вы хотите прокрутить до элемента, вы можете использовать следующее: -

IWebElement element = driver.FindElement(by);
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...