Selenium:当“click()”没有时,为什么“send_keys(Keys.RETURN)”会工作?

时间:2014-06-24 21:47:52

标签: python ubuntu selenium phantomjs

我有一个与按钮相对应的元素(确切地说是Bing搜索按钮),它响应并正常工作:

button.send_keys(Keys.RETURN)

但是当我尝试时:

button.click()

它让我回来" \' \' undefined \'不是一个对象"。有人可以提供和解释吗?如果它是相关的,我使用PhantomJS作为浏览器,我将文本输入搜索字段。

我的代码在我的Mac上完美运行,但它现在不能在我的Ubuntu服务器上运行。这可能很重要。

导致问题的原因是,当您在Bing搜索栏中输入文本时,栏会展开,按钮会向右移动相当大的数量。仍然,为什么在发送返回键时,click方法不起作用?

1 个答案:

答案 0 :(得分:2)

有时可能会发生。 尝试:

  1. 检查选择器!也许其他元素具有相同的类(例如),但是您使用find_element_by_class_name,它为SINGLETON元素分叉。检查追溯以获取更多信息。

  2. AJAX问题。有些网站使用了大量的JS,需要时间来处理请求甚至点击因某些原因无效。

  3. 由于上一个问题,请尝试使用JavaScript点击元素。如果可能,请尝试使用driver.execute_script()方法。