Selenium C#'OpenQA.Selenium.ElementNotVisibleException'错误

时间:2015-08-21 19:42:05

标签: c# internet-explorer selenium

我正在尝试访问单选按钮。根据我的研究,我发现使用名称的元素,因为单选按钮的元素具有相同的名称。我想选择第二个按钮,但是我得到一个元素不可见的异常,并且返回的元素的location属性在窗口之外。但是,我可以看到页面上的元素。

异常:WebDriver.dll中出现“OpenQA.Selenium.ElementNotVisibleException”类型的异常,但未在用户代码中处理

ReadOnlyCollection<IWebElement> webElements = webElement.FindElements(By.Name("thename"));
webElements[1].SendKeys(Keys.Return);

我尝试使用execute javascript以及Actions方法移动到位置。两者都没有。

我尝试了所有可能的密钥发送以点击Actions方法:

Actions actions = new Actions(webDriver);
actions.MoveToElement(webElements[1]);
actions.SendKeys(Keys.Return);
actions.SendKeys(Keys.Enter);
actions.SendKeys(Keys.ArrowDown);
actions.Click();
actions.Perform();

对于javascript执行器,我尝试了两种方法。滚动到视图,并滚动webElement [1]的位置属性告诉我它已关闭的数量。

IJavaScriptExecutor js = webDriver as IJavaScriptExecutor;
string title = (string)js.ExecuteScript("arguments[0].scrollIntoView(true);", webElements[1]);
string title1 = (string)js.ExecuteScript("javascript:window.scrollBy(557329,136);");

我仍然不断获得位置不可见的异常。

1 个答案:

答案 0 :(得分:0)

你可以做的快速检查是在浏览器和控制台中打开开发人员工具,看看document.querySelector(&#34; [name =&#39; thename&#39;]&#34;)是否找到了元素。如果没有,可能该元素在iframe中,或者您使用的名称可能有拼写错误。您还需要确保您尝试访问的单选按钮位于&#39; webElement&#39;在DOM树中。在检查元素时,页面仍然可以加载。在尝试查找元素之前检查这个等待,以便页面可以完全加载。