尝试单击 <a>
时从标题中获取错误回归测试脚本中的标记。我在这里研究了这个问题:Selenium::WebDriver::Error::MoveTargetOutOfBoundsError: Element cannot be scrolled into view:[object HTMLSpanElement]还有这里:https://groups.google.com/forum/#!msg/webdriver/R2jwSWrIK44/RaCLRPlKIWEJ但我不明白问题的根本原因。
我试过使用 By.jQuery、By.Id、By.Css、By.Xpath 以及按索引选择,但总是出现相同的错误。相关代码如下:
HTML:
<div id="divTabs">
<a id="tabECheck" target="#divECheck">eCheck</a>
<a id="tabAceComments" target="#divAceComments">Ace Comments</a>
<a id="tabReviewComments" target="#divReviewComments">Review Comments</a>
<a id="tabReviewHistory" target="#divReviewHistory">Review History</a>
</div>
CSS:
#divTabs{
writing-mode: tb-rl;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
position: absolute;
width: 27px;
padding: 0px;
height: auto;
display: table-row;
margin-bottom: 10px;
}
#divTabs a
{
border: 1px solid #CCC;
padding: 3px;
white-space: nowrap;
cursor: pointer;
color: #3966BF;
display: table-cell;
background-color: #FFF;
}
C#:
element = driver.FindElement(By.Id("tabReviewComments"));
element.Click();
如您所见,我正在尝试单击第 3 个 <a>
ID 为“tabReviewComments”的标签。但是,如果我有脚本,请单击第一个 <a>
id 为“tabECheck”的标签,它的工作原理是我没有收到“无法将元素滚动到 View 中”错误,元素被单击,脚本移过该行。遗憾的是,我需要点击第三个 <a>
标签。关于移动 <a id="tabReviewComments" target="#divReviewComments">Review Comments</a>
的任何想法到顶部?
谢谢!
最佳答案
就浏览器而言,该元素实际上可能是不可点击的,这可能是因为
- 它的位置在屏幕外(负空间)
- 它在另一个元素后面(比如模态叠加层之类的)
- 它的大小为 0(有时 css 可能很有趣,浏览器可能会计算与您看到的大小不同的大小)
- 系统中的 UI 错误,导致该元素因其他原因不可见
关于c# - 无法使用 NUnit、C# 将 Selenium 元素滚动到 View : (34).,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16087961/