2017-07-25 143 views
1

由于某些原因,Selenium“click”命令不再适用于我的笔记本电脑。它不会抛出'元素不可点击'的错误或任何东西,它的行为就像它成功,但实际上没有发生点击。Selenium ChromeDriver默默无法点击

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

看看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服务器。

+0

那么你的问题是什么?你能告诉我们你的工作吗?谢谢 – DebanjanB

+0

需要更多信息,你可以粘贴DOM和代码吗? –

+0

问题是,我怎么能进一步调试呢? DOM正如我所说的,只是一个'

'输入一个按钮 - 没有什么棘手的去那里。由于我使用Haskell语言绑定,因此代码可能不是非常有用。这非常简单,只需Haskell版本的“let x = findElement”my-button“; moveToCenter x;点击x”,其间有一些睡眠。我可以从Selenium/ChromeDriver日志中看到正确的命令正在发送到Selenium中。 – tom

回答

1

好吧,我发现这个问题只发生在ChromeDriver提供--user-data-dir选项时。我每次都使用同一个目录,显然这个文件夹最终陷入了一个奇怪的状态,这导致了这个问题。在测试运行开始时吹掉用户数据目录似乎解决了这个问题。