0

我在 Chrome 上使用 WebDriver,单击元素时出现以下错误:

Clicking locator: //div[@id='tabContainer']/ul/li[3]/a/div   Element
> is not clickable at point (170, 127). Other element would receive the
> click: <ul style="left: 5px; top: 25px; display: block;"
> class="jdm_events">...</ul> (WARNING: The server did not provide any
> stacktrace information) Command duration or timeout: 32 milliseconds
> Build info: version: '2.29.0', revision: '58258c3', time: '2013-01-17
> 22:46:35' System info: os.name: 'Windows Server 2008 R2', os.arch:
> 'x86', os.version: '6.1', java.version: '1.7.0_11' Session ID:
> 740bb830a8add9463c23d4461c99acc9 Driver info:
> org.openqa.selenium.chrome.ChromeDriver Capabilities [{platform=XP,
> chrome.chromedriverVersion=26.0.1383.0, acceptSslCerts=false,
> javascriptEnabled=true, browserName=chrome, rotatable=false,
> locationContextEnabled=false, version=25.0.1364.152,
> cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true,
> browserConnectionEnabled=false, webStorageEnabled=true,
> nativeEvents=true, applicationCacheEnabled=false,
> takesScreenshot=true}]

仅当使用 WebDriver 的 .NET 绑定通过 Grid2 同时运行多个测试时才会发生这种情况。

每次运行时,我通常会在 20 次测试中失败大约 2 次,但是一次失败的测试可能会在下一次正确运行。

我想知道这是否是 Chrome 驱动程序的一个已知问题,或者是否需要将某些内容添加到我的 click 方法中以处理导致此问题的任何原因。

这是要单击的元素所在的代码示例:

<li class="ui-state-default ui-corner-top">
  <a href="#fundingTab" title="">
    <div class="tab" style="float: left; padding: 0.5em 1em">
     <span style="overflow: visible;">Funding</span>
    </div>
  </a>
</li>
</ul>
4

2 回答 2

0

因为它仅在您运行多个测试(本地或在某些 CI 机制中)时发生,所以它也可能由于前一个测试结束状态的结束而发生,这会影响下一个测试。例如:在测试 1 中,将组件添加到主页。执行的测试。组件被移除。在测试 2 中,组件仍然出现在页面上,这会影响测试。

因此,在您的情况下,请考虑打开菜单这样的选项,不是因为悬停,而是因为它在之前的测试中打开了。

希望能帮助到你。

PS关于更改鼠标初始位置 - 我找到了这个答案,也许它可以帮助你:如何重置 Selenium 鼠标光标位置?

于 2013-11-12T23:29:23.783 回答
0

在将 Olark 聊天功能添加到我们的网站后,我遇到了类似的问题。在这种情况下,我将测试设置为在页面加载后进行任何单独测试之前自动调用 olark 上的禁用 API。

它确实减慢了测试速度,但它解决了问题。也许您可以在页面加载后注入一些 javascript 来隐藏菜单。这假设您不需要测试该菜单。

于 2013-11-25T16:15:59.553 回答