当前位置: 首页 > 知识库问答 >
问题:

C#Selenium-OpenQa.Selenium.ElementNotInteractableException-Element无法滚动到视图中

姬墨竹
2023-03-14

我目前正在尝试使用selenium和C#单击网页上的一个元素。我需要单击一个基于具有文本'Test App'的子元素的Div元素。

<div class="application_items">
    <a href="www.google.com" target="_self">
        <div class="homePageItems">
           <div class="small" style="display: block;">
               <div class="AppLabel">Test App</div>
           </div>
           <div class="big" style="display: none;">
               <div class="AppLabel">Test App</div>
                   <div class="underTitle"></div>
           </div>
       </div>
   </a></div>
Element(By.XPath("//div[@class='small']/*[text()[contains(., 'Test App')]]"));
OpenQA.Selenium.ElementNotInteractableException: 'Element <div class="AppLabel"> could not be scrolled into view'
IWebElement elem = Driver.FindElement(By.XPath("//div[@class='small']/div[text()[contains(., 'Test App')]]"));

String js = "arguments[0].style.height='auto'; arguments[0].style.display='block';";

((IJavaScriptExecutor)Driver).ExecuteScript(js, elem);

如果以前有人问过类似的问题,我很抱歉,我花了一段时间浏览类似的主题,但没有找到我需要的。如果有人能给我指明正确的方向,我将不胜感激。

共有1个答案

盖诚
2023-03-14

您可以获取所有元素,将它们筛选到仅可见的元素,然后单击第一个(或其他)元素。

IReadOnlyCollection<IWebElement> elems = Driver.FindElements(By.XPath("//div[.='Test App']")).Where(e => e.Displayed).ToList();
elems.ElementAt(0).Click();

您还可能需要添加一个等待,以确保页面的一部分已经加载。

 类似资料:
  • 错误是“元素输入class=”whsond zhqkbf“name=”password“type=”password“无法滚动到视图中”

  • 我正在尝试使用java和Eclipse学习Selenium。我试图找到网页中的一个元素。 我尝试使用这行代码单击一个html元素: 下图显示了页面的html结构:

  • 有人能帮我一下吗:检查元素代码是。 代码为:

  • 我还将代码更改为 同样的错误... Com.ThoughtWorks.Selenium.SeleniumException:元素内的偏移量无法滚动到视图中:(87,118):[object XrayWrapper[object HTMLDivElement]]命令持续时间或超时:63毫秒构建信息:版本:“2.39.0”,修订版:“FF23eAC”,时间:“2013-12-16 16:11:15”系

  • 我正在为我的公司自动化IdentiGO应用程序,并得到以下错误: 下面是我的代码,由于与我的问题无关,所以省略了导致该页面的脚本。 在此代码之前的页面上,用户选择约会日期和时间;我希望脚本等待“开始”按钮被推,然后在下面的截图中点击“继续”: null https://jsfiddle.net/khf4tym3/ 当我单击“View page source”时,弹出的html不会显示在源代码中,所

  • 我正在尝试用Selenium选择一个值。 你能帮我纠正一下情况吗?