【问题标题】:Selenium ChromeDriver silently fails to clickSelenium ChromeDriver 静默无法点击
【发布时间】:2017-07-25 00:57:32
【问题描述】:

由于某种原因,Selenium 的“单击”命令不再适用于我的笔记本电脑。它不会引发“元素不可点击”错误或任何其他错误,它的行为就像成功但实际上没有发生点击。

我设置了一个非常简单的调试示例:一个带有 <form method="post" action="/whatever"> 的纯 HTML 页面,其中包含一个带有 type='submit' 的按钮。

查看 Selenium 日志,它似乎将 POST 命令发送到 /click 没有问题。看着chromedriver的日志,似乎在开心地点击:

[14.199][INFO]: COMMAND Click {
   "button": 0
}
...
[14.202][INFO]: RESPONSE Click

为了增加神秘感,我尝试添加一个 CSS 类 my-button:hover { background-color: red }。当我尝试在按钮上执行 Selenium 的 moveToCenter 命令时,不会出现红色悬停颜色。 (悬停在其他测试机器上也能正常工作。)

所以,似乎与鼠标光标相关的东西通常无法正常工作。其他 Selenium 功能似乎还可以——例如,触发按钮上的“提交”操作就可以了。

FWIW,这发生在上周左右。我的笔记本电脑上的知识没有任何改变(比如 Chrome 更新等)。Selenium 测试在其他机器上仍然可以正常工作,比如我的 Jenkins 服务器。

【问题讨论】:

  • 那么您的问题是什么?你能给我们看看你的作品吗?谢谢
  • 需要更多信息,可以粘贴 DOM 和代码吗?
  • 问题是,我该如何进一步调试呢? DOM 就像我说的那样,只是一个带有单个按钮的<form> 输入——那里没有什么棘手的事情。由于我使用的是 Haskell 语言绑定,因此该代码可能不是很有帮助。这很简单,只是 Haskell 版本的 "let x = findElement "my-button"; moveToCenter x; click x" 中间有一些睡眠。我可以从 Selenium/ChromeDriver 日志中看到正确的命令正在发送到 Selenium。
  • (我也试过点击<a href="#" onclick="alert('hi')">Click me</a>之类的其他东西,也不起作用)

标签: selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

好的,我发现只有在向 ChromeDriver 提供 --user-data-dir 选项时才会出现此问题。我每次都使用同一个目录,显然这个文件夹最终进入了一个奇怪的状态,导致了这个问题。在测试运行开始时清除用户数据目录似乎可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多