C# 如何查找仅在滚动后可见的元素?

C# 如何查找仅在滚动后可见的元素?,c#,selenium,selenium-webdriver,selenium-chromedriver,C#,Selenium,Selenium Webdriver,Selenium Chromedriver,我有一个SAP应用程序,有如下对话框: 此相应对话框的html源代码为 我们可以看到只有18排 当我滚动条时(在图1中用蓝色箭头显示)html源代码 显示另外18行,因为对话框中只能容纳18行。 现在我想滚动条到最后一行并选择框的最后一行。 我该怎么做 我试着用 public void waitForElement() { //IJavaScriptExecutor je = (IJavaScriptExecutor)StaticDriver.drive

我有一个SAP应用程序,有如下对话框:

此相应对话框的html源代码为

我们可以看到只有18排 当我滚动条时(在图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.
但我发现了错误
元素计数

如何滚动到最后一个并找到元素

最后一个元素的视图和html源代码为:

HTML源代码:

尝试使用JavaScript Executor滚动到页面末尾:

 js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

尝试使用JavaScript Executor滚动到页面末尾:

 js.executeScript("window.scrollTo(0, document.body.scrollHeight)");

以上答案应该有效,如果您想滚动到元素,您可以使用以下选项:-

IWebElement element = driver.FindElement(by);
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

以上答案应该有效,如果您想滚动到元素,您可以使用以下选项:-

IWebElement element = driver.FindElement(by);
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);

对于滚动,请看一看,这是一个python示例,但我很高兴这里有一个c#pendant。如果您仍然无法访问该项目,那么请查看您的团队是否使用了
iframe
元素,而不是您所需要的。对于滚动查看,这是一个python示例,但我很高兴看到有一个c#挂件。如果您仍然无法访问该项目,那么请查看您的一方是否使用了
iframe
元素,而不是您必须使用的元素。不,它没有响应。如果此评论是针对其他人的,您需要添加@other person's name,以便他能收到它,则该条不会滚动。现在写在我的答案下面,这样我是唯一一个收到你评论通知的人。不,它没有回应。如果这个评论是为其他人写的,你需要添加@other person's name,这样他就会收到它。现在把它写在我的答案下面,这样我是唯一一个收到你评论通知的人。