不能点击带有硒网络驱动程序的Angular-JS按钮:ElementNotVisibleException

本文关键字:Angular-JS 按钮 ElementNotVisibleException 驱动程序 网络 不能 | 更新日期: 2023-09-27 17:55:09

我试图点击这个按钮(它清楚地在页面上和视图中):

<button class="ui tertiary button" data-ng-click="addRoom()" data-ng-disabled="pendingRequests >= 1">ADD ROOM TO CRUISE CART</button>

这是我的代码:

driver.FindElement(By.CssSelector("button[data-ng-click^='addRoom']")).Click();

它总是抛出此错误:

OpenQA.Selenium.ElementNotVisibleException : 元素当前不可见,因此可能无法与之交互

Selenium WebDriver 是否与 angular JS 兼容?

不能点击带有硒网络驱动程序的Angular-JS按钮:ElementNotVisibleException

我已经设法确定了问题,有多个具有完全相同的XPath按钮,一个在给定时间可见,另一个不可见。我

   var list = driver.FindElements(By.CssSelector("a[data-ng-click='addRoom()']")).ToList();
        foreach (var item in list)
        {
            Console.WriteLine(item.Displayed);
            if(item.Displayed)
            {
                item.Click();
            }
        }

这得到了活动按钮,谢谢你的帮助。我现在可以继续前进了

有同样的问题,你可以这样做(使用 linq)

driver.FindElement(By.CssSelector("button[data-ng-click^='addRoom']")).First(x=>x.Displayed()).Click();

将代码更改为以下内容:

driver.findElement(By.xpath("//button[contains(text(),'ADD ROOM TO CRUISE CART')]")).click();