1

尝试单击<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();

如您所见,我正在尝试单击<a>ID 为“tabReviewComments”的第三个标签。但是,如果我让脚本单击<a>ID 为“tabECheck”的第一个标签,则它的工作原理是我没有收到“无法将元素滚动到视图中”错误,单击该元素,并且脚本移过该行。可悲的是,我需要点击第三个<a>标签。<a id="tabReviewComments" target="#divReviewComments">Review Comments</a>除了移到顶部还有什么想法吗?

谢谢!

4

1 回答 1

1

就浏览器而言,该元素实际上可能是不可点击的,这可能是因为

  • 它的位置在屏幕外(负空间)
  • 它在另一个元素后面(如模态叠加或其他东西)
  • 它的大小为 0(有时 css 可能很有趣,浏览器可能会计算出与您所看到的大小不同的大小)
  • 系统中的 UI 错误,导致元素因其他原因不可见
于 2014-05-27T04:12:09.433 回答