Selenium C# 滚动和点击 - 网页元素

Selenium C# Scrolling and clicking - web element

程序应该做什么? 单击网站上的每个按钮。

By bybut = By.XPath("//span[@class='Button']");

var element = driver.FindElement(bybut);

IJavaScriptExecutor js = driver as IJavaScriptExecutor;

for (int i = 0; i < 99; i++)
{
    // Scroll element into view (orange rectangle on my picture)
    js.ExecuteScript("arguments[0].scrollIntoView(true);", element);

    // Time for scrolling
    System.Threading.Thread.Sleep(2000);

    // Click on Button
    driver.FindElement(By.XPath("//span[@class='Button']")).Click();
}

在 Internet 站点上,如果您单击该按钮,它将被删除。

我的问题: 如果 For-Loop 重复,就会出现错误,因为下一个按钮已经在我的视图框架中。我如何检查按钮是否已在视图中?

您还有其他解决方案吗?提前致谢!

你可以试试下面的代码:_

IJavaScriptExecutor js = driver as IJavaScriptExecutor;

    List<WebElement> displayedOptions = driver.FindElements(//span[@class='Button']);

    for (WebElement option : displayedOptions) 
     {
    try{

     js.ExecuteScript("arguments[0].scrollIntoView(true);", option );

     System.Threading.Thread.Sleep(2000);

        // Click on Button
        driver.FindElement(By.XPath("//span[@class='Button']")).Click();


    }catch(WebException E){


    }