WebDriver - 元素不是可点击的Chrome驱动程序

时间:2013-03-11 16:33:27

标签: selenium webdriver selenium-chromedriver

我在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>

2 个答案:

答案 0 :(得分:0)

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

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

希望它有所帮助。

P.S。关于改变鼠标初始位置 - 我找到了这个答案,也许它可以帮助你:How can I reset the Selenium mouse cursor position?

答案 1 :(得分:0)

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

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