草庐IT

Java爬虫Selenium+Java+ChromeDriver【抓取百度信息】

全部标签

javascript - 如何用 selenium 重新加载 html DOM,以便新命令定位新节点?

所以我正在做一些测试,其中一个页面会在单击某些按钮和链接后更改它的html树。但是webdriver一直只在旧的htmlDOM中搜索。那么如何定位新添加的网络元素呢?或者如何让webdriver加载新的HtmlDOM以便它以新元素为目标?谢谢 最佳答案 WebDriver会自动轮询DOM。只需在与最近添加的网络元素交互之前使用隐式或显式等待:http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-and-implicit-waits

javascript - 在 PhoneGap Build 中从 Facebook 获取信息

根据JesseMonroy650的要求编辑:我之前做过几个混合应用程序,但都没有商业发布。我正在使用PhoneGapBuild。位于此处:https://build.phonegap.com/我没有使用任何桌面应用程序。原创内容:我正在尝试从PhoneGapBuild中的Facebook获取数据。我有一个简单的脚本,看起来它应该基于API工作:document.addEventListener("deviceready",onDeviceReady,false);functiononDeviceReady(){varfbLoginSuccess=function(userData){a

javascript - 我如何像 Java 包一样组织我的 Angular 应用程序文件夹?

如何像Java包一样组织Angular2应用文件夹结构?考虑以下项目布局:app|_model|_component|_service我想将foo.service.ts从service导入到component中的bar.component.ts>。但据我所知,Angular2导入仅支持相对路径,如/../service/,这似乎是非常笨拙的解决方案。有没有一种方法可以从根文件夹引用带有绝对路径的文件夹,就像Java包一样? 最佳答案 更新2016-06-01使用npminstalltypescript@next你已经可以使用这个函数

javascript - 如何验证是否使用 Selenium 在 javascript 对象上调用了某些方法?

我想用selenium验证是否调用了某些方法(带参数)JavaScript对象-一种使用JMockit的期望模拟,但在Javascript和selenium中。不幸的是,对象是被严重混淆的不透明网站性能跟踪器,我无法访问它的内部结构,所以在我看来,模拟是唯一的选择。还是我漏掉了一些明显的东西?更新:经过思考,在我看来解决方案可能是:-等待HTML完全加载-删除某些包含性能跟踪器的脚本标签-创建javascript模拟对象,其行为类似于跟踪器,但记录调用供以后使用 最佳答案 好的,终于明白了。选择的模拟框架是:jsmockito和js

javascript - MobileSafari 未通过 JavaScript 返回正确的图像大小信息

我有一个HTMLtestpageforthisissuehere.出于某种原因,MobileSafari将任何超过1700像素的图像的Image.width/height属性报告为其值的一半。也就是说,JPG的width属性是2000,但MobileSafariJavaScript将其报告为1000。如果我对1700像素宽的图像尝试相同的代码,我会得到正确的宽度。Thetest我确实加载了两个图像(不同尺寸的相同图像)并显示了JavaScript大小值。我试过:MacOSX10.6.8中的Chrome22、Safari5.1.7、Firefox15.0.1(正确大小)iOS模拟器4.3

javascript - Selenium Webdriver 是可检测的

我到处都读到网站不可能检测到用户正在使用seleniumwebdriver......但为什么呢?例如firefox中的webdriver插件添加了一个“webdriver属性”到元素。所以...转到...我很困惑...为什么无法检测到网络驱动程序?我写了一点Javascript来获取document.outerHTML...并且有webdriver属性!=检测到!?这是我在浏览器中使用和不使用Webdriver测试的代码:有人能解释一下为什么无法检测到Webdriver吗? 最佳答案 W3CdraftspecAppendixE中的

javascript - Capybara/Selenium 在 location.reload() 上随机获取一个 Net::ReadTimeout

我正在使用Capybara、selenium-webdrivergem和chromedriver来驱动我的启用javascript的测试。问题是大约50%的构建由于Net::ReadTimeout错误而失败。起初这表现为“找不到元素”错误,但在我将Capybara的默认最长等待时间提高到30秒后,我开始看到超时。我检查了超时发生时的屏幕截图,它停留在我们在使用Javascript函数location.reload()重新加载页面之前简要显示的“成功登录”模式.我在本地运行了测试,有时可以重现,也是随机的。有时它会通过这个模态压缩并重新加载,速度快到你几乎看不到它,而其他时候它会永远挂起

javascript - 在仅 nodejs 环境中的 ES6 模块/类中定义 'real' 私有(private)方法,没有任何信息泄漏

我知道没有REAL私有(private)方法INSIDEES6类。然而,我玩了一会儿,发现了一些好东西——也许……正如我提到的,不公开对象的属性是不可能的。但是我试图实现一些OOP编程,因为我将我的类分成单独的文件,然后导出这些类,如:classMyClass{constructor(){/***Initializestuff...*/}myMethod(){/***Dopublicstuff...*/}}//exposeclasstoenvironment.exportdefaultMyClass;所以我可以导入类:从'./MyClass.js'导入MyClass;当然myMetho

javascript - 为什么 Selenium 找不到动态添加的 DOM 元素?

我用jQuery添加了一个DOM元素(一个链接)。我可以在Firebug中看到该元素,但由于某种原因Selenium找不到它。这是怎么回事?注意:不涉及AJAX,因此几乎立即添加了DOM元素。==编辑==这里有一些代码(使用jQuery)将链接附加到文档的末尾:$element=$("");$element.appendTo($("body"));我正在使用Capybara(带有Selenium)来查找链接并单击它,如下所示:find("#foo").click在我开始使用jQuery向DOM添加元素之前,我对Capybara或Selenium没有任何问题。

javascript - 我可以从 highcharts.js 中抓取原始数据吗?

我想从使用highcharts.js显示图表的页面中抓取数据,因此我完成了对所有页面的解析以获取followingpage。.然而,最后一页,即显示数据集的页面,使用highcharts.js来显示图表,似乎几乎不可能访问原始数据。我将Python3.5与BeautifulSoup结合使用。还能解析吗?如果是这样,我该如何抓取它? 最佳答案 数据在脚本标签中。您可以使用bs4和正则表达式获取脚本标签。您也可以使用正则表达式提取数据,但我喜欢使用/js2xml将js函数解析为xml树:frombs4importBeautifulSou