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

时间:2017-12-28 10:53:20

标签: c# selenium scrollview selenium-chromedriver

该计划应该做什么?点击网站上的每个按钮。

enter image description here

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();
}

在互联网网站上,如果您点击该按钮,它将被删除。

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

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

1 个答案:

答案 0 :(得分:1)

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

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){


    }