【问题标题】:Scraping an dom element with mouse movement用鼠标移动抓取一个 dom 元素
【发布时间】:2017-06-02 00:01:58
【问题描述】:

我正在尝试抓取http://ventusky.com/。当鼠标四处移动时,它会在鼠标指针附近显示一些数据。我正在使用selenium。当我查看浏览器控制台时,我可以看到 mousemove 事件侦听器正在添加此数据。我的代码。

test = driver.find_element(:id,"h")
driver.action.move_to(test, 100, 100).perform
elem=wait.until{driver.find_element(:class,"yy")}
puts elem.attribute "outerHTML"

但我没有从元素elem 中获得任何数据。它的text 是空的。当脚本运行时,我也没有看到浏览器上发生任何事情。有人可以帮我解决这个问题。我对报废还很陌生。

我正在使用ruby,尽管这并不重要。我可以找到 ruby​​ 等价物。

【问题讨论】:

    标签: ruby selenium web-scraping


    【解决方案1】:

    您在移动命令之前缺少睡眠。此页面需要一些时间来加载,因此您可以添加 finished_loading_elem=wait.until{driver.find_element(:id,"z")} 或添加隐式等待,如其他语言中的 Thread.Sleep

    另外,我建议移动到像 250、250 这样的偏移量,因为 100,100 可能会落在搜索栏上。

    【讨论】:

    • 我尝试更改坐标并添加等待,但结果相同。但是mousemove 事件监听器没有被调用。
    • 您确定鼠标移动动作是在页面加载完成后发生的吗?
    • 我理解这里的问题。如果您查看网站并单击任何点,它将添加一个新的div 以及该点的位置。当我再次点击时。它消失了。出于某种原因,下次单击未添加div。由于找不到元素而超时。
    猜你喜欢
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 2018-03-04
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    相关资源
    最近更新 更多