如何使用phantomJS来模拟一个HTML元素的鼠标悬停

(How to use phantomJS to simulate mouse hover on a HTML element)

 
 
问 题

I have the phantomJS code below to fetch the HTML code:

    var page = require('webpage').create();
var url = 'http://www.abc.com/'; page.open(url, function (status) {
var js = page.evaluate(function () {
return document;
});
console.log(js.all[0].outerHTML);
phantom.exit();
});

The content I want to fetch will only be read while the mouse is hover on the specific element which is controlled by JavaScript, so the code above is not working.

I want to know how to simulate the mouse hover on a HTML element using the phantomJS code. Let's say I want to mouse hover over on a element then dump the HTML to output, how should I do?

Edit: The following code didn't work. What could be the problem?

var page = require('webpage').create();
var url = 'http://www.abc.com/'; page.open(url, function (status) {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function(){
$('#some_element').trigger('hover');
});
var js = page.evaluate(function () {
return document;
});
console.log(js.all[0].outerHTML);
phantom.exit();
});
解决方案

Try load your page with jquery:

page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
//(...)
});

and then call hover on your element:

$('#some_element').trigger('hover');

本文地址:IT屋 » How to use phantomJS to simulate mouse hover on a HTML element

问 题
 

我有以下phantomJS code,以获取HTML code:

  VAR页=要求('网页')创建()。
    VAR URL ='http://www.abc.com/';    page.open(URL,功能(状态){
        VAR JS = page.evaluate(函数(){
        返回文件;
    });
    的console.log(js.all [0] .outerHTML);
    phantom.exit();
});

我想取将只读取当鼠标悬停是由JavaScript控制的特定元素上的内容,所以上面的code是行不通的。

我想知道如何模拟使用phantomJS code一个HTML元素的鼠标悬停。比方说,我想鼠标悬停在某个元素上,然后倾倒HTML输出,我应该怎么办?

编辑:下面code没有工作。可能是什么问题?

  VAR页=要求('网页')创建()。
VAR URL ='http://www.abc.com/';page.open(URL,功能(状态){
    page.includeJs(http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js”功能(){
        $('#some_element')触发('悬停')。
    });
    VAR JS = page.evaluate(函数(){
        返回文件;
    });
    的console.log(js.all [0] .outerHTML);
    phantom.exit();
});
解决方案

尝试负载您使用jQuery页面:

page.includeJs(http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js”功能(){
    //(...)
});

然后调用悬停你的元素:

$('#some_element')触发('悬停');

本文地址:IT屋 » 如何使用phantomJS来模拟一个HTML元素的鼠标悬停


通过CDN引入jQuery的几种方式

 
微信公众号搜索 “ IT屋 ” ,选择关注

如何使用phantomJS来模拟一个HTML元素的鼠标悬停的更多相关文章

  1. 纯CSS3写一个立方体并在鼠标悬停的时候无限循环旋转

  2. Selenium(十):用By定位元素、鼠标事件、键盘事件

    1. 用By定位元素 除了前面介绍的单位方法,WebDriver还提供了另外一套写法,即统一调用find_element()方法,通过By来声明定位的方法,并且传入对应定位方法的定位参数.具体如下: ...

  3. 【转】Chrome调试鼠标悬停后出现的元素

    原文地址:https://blog.csdn.net/sparrowflying/article/details/80996550 调试小技巧:调试样式的时候,有一类元素是鼠标悬停在特定位置才会出现的 ...

  4. Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。

    package Collection; import java.util.LinkedList; /* LinkedList:特有的方法 addFirst()/addLast(); getFirst( ...

  5. C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】

    C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...

  6. web前端面试系列 - 数据结构(两个栈模拟一个队列)

    一. 用两个栈模拟一个队列 思路一: 1. 一个栈s1作为数据存储,另一个栈s2,作为临时数据存储. 2. 入队时将数据压人s1 3. 出队时将s1弹出,并压人s2,然后弹出s2中的顶部数据,最后再将 ...

  7. 第十五篇 JS 移入移出事件 模拟一个二级菜单

    JS 移入移出事件 模拟一个二级菜单   老师演示一个特别简单二级菜单,同学们除了学习JS,还要注意它的元素和CSS样式. 这节课介绍的是JS鼠标移入.移出事件:onmouseover是移入事件,on ...

  8. 自定义模拟一个Spring IOC容器

    一.模拟一个IOC容器: 介绍:现在,我们准备使用一个java project来模拟一个spring的IOC容器创建对象的方法,也就是不使用spring的jar自动帮助我们创建对象,而是通过自己手动书 ...

  9. 关于“float”的一次探索--遇到了一个span元素可以设置宽高引发的思考

    起初,这个问题和float还有设置宽高之间是没有任何关联的,一开始这是一个关于height和line-height的问题,目的是为了探究一下这两者之间的关系,但是在学习的过程中,我翻之前写的代码,发现 ...

随机推荐

  1. prometheus学习系列九: Prometheus AlertManager使用

    在Prometheus的报警系统中,是分为2个部分的, 规则是配置是在prometheus中的, prometheus组件完成报警推送给alertmanager的, alertmanager然后管理这 ...

  2. phpstorm goland webstorm jetbrain

    1.去官网搞点安装包2.下载完之后一定要打开一下否则个别机型会出现包已损坏的错误提示3.下载Jet Brains License链接:https://pan.baidu.com/s/10nRk7Gei ...

  3. 最常用MySql数据库备份恢复

    1.数据备份类型: ·完全备份:故名思议备份整个数据库 ·部分备份:备份一部分数据集 : ·增量备份:自上次备份以来的改变数据的备份: ·差异备份:自上次完全备份后改变数据的备份: 2.数据备份的方式 ...

  4. 11、Python函数基础(定义函数、函数参数、匿名函数)

    函数先定义函数,后调用 一.定义函数: 1.简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. 函 ...

  5. Ruby for

    #!/usr/bin/ruby -w# -*- coding: UTF-8 -*-for i in 1..5 print i," "endprint "\n"f ...

  6. CAN通信帧ID的含义解析? (转载)

    https://www.cnblogs.com/isAndyWu/p/10298695.html这个文章解答了我的一个id使用的疑惑,因此谢谢作者,转载. CAN总线ID是包含在报文帧中的. 1.主要 ...

  7. 前端jsp fetch跨域调用 is not allowed by Access-Control-Allow-Origin.

    之前我在用json跨域调用时,遇到如图问题,后来查查是官方json不支持跨域调用,后来改用非官方的jsonp跨域调用后台方法,出现如下问题 Origin http://127.0.0.1:8080 i ...

  8. es6字符串扩展 -- 字符串长度补全功能 padStart(), padEnd()

    ES2017 引入了字符串补全长度的功能.如果某个字符串不够指定长度,会在头部或尾部补全.padStart()用于头部补全,padEnd()用于尾部补全. 'x'.padStart(5, 'ab') ...

  9. python - 将天数转换成日期

    # 如果是 0 则为今天 def getdate(day): today = datetime.datetime.now() deviation = datetime.timedelta(days=- ...

  10. 用Python 打开程序的两中方法

    1.ShellExecute函数 import win32api win32api.ShellExecute(0, 'open', 'notepad.exe', '', '', 0) # 后台执行 w ...