【问题标题】:Selenium fails to clickSelenium 无法点击
【发布时间】:2011-06-01 16:23:15
【问题描述】:
selenium.click([xpath to object])

Selenium 点击方法对我来说似乎搞砸了。它识别出我想点击的按钮并认为它点击了它。但是屏幕上什么也没有发生。下一行涉及单击下一个屏幕上的另一个按钮。它失败是因为它找不到按钮,因为第一次点击实际上并没有发生。

[编辑] 看起来它只是在屏幕更改后无法单击。它将单击登录按钮罚款,并加载新屏幕。下一次点击失败,但如果我轻轻推动它(IE 点击它的按钮),脚本中的所有后续点击都运行良好。所以好像是换屏后点击有问题?

【问题讨论】:

  • 查看按钮代码和用于执行点击的代码/定位器会很有帮助。
  • 您自己没有点击就知道出了什么问题吗?
  • @oma,看来最后只是加载错误。我添加了一个延迟,世界再次一切正常:)
  • 好的,谢谢!顺便说一句,我的问题的根源是 mootools js lib。它与硒不是最好的朋友。 stackoverflow.com/q/6996141/252799

标签: java selenium


【解决方案1】:

我遇到了类似的问题,这段代码对我有用:

    mouseOver(locator);
    mouseDownAt(locator, "10,10");
    mouseUpAt(locator, "10,10");

我将它封装在一个 clickButton() 方法中并使用它来代替 click()

【讨论】:

  • 但这不是高度依赖屏幕分辨率吗?
  • 这似乎不起作用。它仍然认为它有效,但屏幕从不转换。它继续并寻找下一个对象,但由于页面尚未转换而失败
  • 它最终会过渡还是只是挂起?
  • 毕竟只是想点击一下,我延迟了,现在一切顺利:) 感谢您的帮助
【解决方案2】:

你可以试试这个:

WebElement element = driver.findElement(By.id("button"));    
JavascriptExecutor executor = (JavascriptExecutor)driver;    
executor.executeScript("arguments[0].click();", element);

【讨论】:

  • 由于您无法使用 selenium 点击方法,您可以尝试使用 javascript 点击按钮
【解决方案3】:

如果您在 Internet Explorer 上执行此操作,则存在一个已知错误,即它的窗口必须位于最前面。有些人通过执行另一个使窗口获得焦点的事件来解决这个问题,例如单击两次或最大化等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2017-12-08
    • 2017-05-25
    相关资源
    最近更新 更多