【发布时间】:2013-04-11 20:43:29
【问题描述】:
尝试单击回归测试脚本中的 <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();
如您所见,我正在尝试单击 ID 为“tabReviewComments”的第三个<a> 标记。但是,如果我让脚本单击 ID 为“tabECheck”的第一个 <a> 标记,则它的工作原理是我没有收到“无法将元素滚动到视图中”错误,元素被单击,并且脚本移过该行。可悲的是,我需要点击第三个<a> 标签。除了将<a id="tabReviewComments" target="#divReviewComments">Review Comments</a> 移到顶部还有什么想法吗?
谢谢!
【问题讨论】:
-
Firefox v10.0 和 Selenium 2.22.0.0
标签: c# html css selenium nunit