【问题标题】:Why is Selenium Chrome driver not able to find elements below scroll bar?为什么 Selenium Chrome 驱动程序无法在滚动条下方找到元素?
【发布时间】:2016-08-26 21:50:14
【问题描述】:

我一直在尝试编写一个清晰的仪表板步骤,该步骤将清除仪表板页面中我们称为小部件的所有对象,如下所示:

    public static void ClearDashboard(string widgetToKeep = null)
    {
        var widgets = Driver.FindElements(
            By.XPath(
                $"//div[@widget-name and descendant::span[@class='title' and text()[not(contains(., '{widgetToKeep ?? "dummyText"}'))]]]"
            ));

        if (widgets != null)
        {
            foreach (IWebElement widget in widgets)
            {
                var closeButton = widget.FindElement(By.XPath(".//span[@class='delete']"));
                closeButton.Click();
            }
    }

它完全有效。 它使用标题返回所有跨度元素,我可以滚动浏览这些元素,为每个元素获取一个跨度删除按钮,然后删除小部件:

closeButton.Click()

除了有点偏离屏幕的小部件对象。 如果小部件离屏幕有点远,它似乎找不到跨度按钮。

这是一个例外: 用户代码未处理 InvalidOperation

WebDriver.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:未知错误:元素在点 (951, 760) 处不可点击。其他元素会收到点击:<div class="scroll" ng-class="{'getting-data': gettingNewData}" scroll-pag="">...</div>

(会话信息:chrome=52.0.2743.116)

(驱动程序信息:chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64)

【问题讨论】:

    标签: c# .net google-chrome selenium


    【解决方案1】:

    您应该在使用IJavascriptExecutor 点击之前使用滚动到达每个元素,并使用WebDriverWait 等到元素可点击,如下所示:-

    IWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(3));
    IJavaScriptExecutor js = Driver as IJavaScriptExecutor;
    foreach (IWebElement widget in widgets)
    {
     var closeButton = widget.FindElement(By.XPath(".//span[@class='delete']"));
    
     //Now scroll to this element first 
     js.ExecuteScript("arguments[0].scrollIntoView(true);", closeButton);
    
     wait.Until(ExpectedConditions.ElementToBeClickable(closeButton)).Click();
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多