Javascript Selenium Webdriver的替代方案
我使用SeleniumWebDriver for C和Python从网站获取数据元素,但是web抓取的速度非常慢。清理35000个数据表花了我大约1,5天的时间。使用SeleniumWebDriver,我可以执行Javascript来获取Java元素。是否有一些可用的库不需要像Webdriver这样的东西在网页上执行Javascript来检索元素,并且能够单击元素?还是有一种更快的硒替代品 我建议使用Selenium+PhantomJSDriver Ghostdriver,它用于无GUI的浏览器自动化。有了它,您可以轻松地在页面中导航,选择元素,您可以选择航班,提交表单,还可以执行一些刮削。还支持Javascript 您可以阅读Selenium文档。您必须下载该文件 中提供了PhantomJSDriver的良好教程 从教程中配置PhantomJSDriverf:Javascript Selenium Webdriver的替代方案,javascript,selenium,webdriver,Javascript,Selenium,Webdriver,我使用SeleniumWebDriver for C和Python从网站获取数据元素,但是web抓取的速度非常慢。清理35000个数据表花了我大约1,5天的时间。使用SeleniumWebDriver,我可以执行Javascript来获取Java元素。是否有一些可用的库不需要像Webdriver这样的东西在网页上执行Javascript来检索元素,并且能够单击元素?还是有一种更快的硒替代品 我建议使用Selenium+PhantomJSDriver Ghostdriver,它用于无GUI的浏览器
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true); // not really needed: JS enabled by default
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C://phantomjs.exe");
caps.setCapability("takesScreenshot", true);
WebDriver driver = new PhantomJSDriver(caps);
其他选项不需要WebDriver:
PhantomJS是一个无头WebKit,可使用JavaScript API编写脚本。它具有对各种web标准的快速和本地支持:DOM处理、CSS选择器、JSON、画布和SVG
这是无GUI的,并且能够截图
示例来自:
PS:我建议使用JSoup进行web抓取,但它不支持Javascript。PhantomJSDriver为python提供了一个名为Ghost.py的东西。LeanFT呢?这是一款新的HP产品,可与C和Java一起使用,用户说他们之所以改用LeanFT,是因为他们的所有应用程序。我建议您使用 TestCafe是用于web功能测试e2e测试的免费开源框架。TestCafe基于Node.js,根本不使用WebDriver TestCafe支持的测试在服务器端执行。为了获得DOM元素,TestCafe提供了强大灵活的选择器系统。 TestCafe可以使用ClientFunction功能在测试过的网页上执行JavaScript,请参阅我们的文档 TestCafe测试真的很快。但由于内置智能等待系统,高速试运行不会影响稳定性 TestCafe的安装非常简单: 1检查您的电脑上是否有Node.js或安装它 2要安装TestCafe open cmd并键入:
npm install -g testcafe
写作测试不是一门火箭科学。以下是一个快速开始:
1将以下代码复制粘贴到文本编辑器中,并将其另存为test.js
import { Selector } from 'testcafe';
fixture `Getting Started`
.page `http://devexpress.github.io/testcafe/example`;
test('My first test', async t => {
await t
.typeText('#developer-name', 'John Smith')
.click('#submit-button')
.expect(Selector('#article-header').innerText).eql('Thank you, John Smith!');
});
2在cmd中键入以下命令,在浏览器(如chrome)中运行测试:
testcafe chrome test.js
3在控制台输出中获取描述性结果
TestCafe允许您针对各种浏览器进行测试:本地、远程设备,无论是Raspberry Pi浏览器还是iOS Safari浏览器,云(如Sauce Labs)或无头(如梦魇)浏览器。这意味着您可以轻松地将TestCafe与连续集成基础设施一起使用。如果您使用HTMLUnit webdriver,则运行浏览器不会产生任何开销,因此代码可以运行得更快。通过完全放弃框架/工具集,直接查询页面并解析它们以获得所需内容,您可以进一步加快速度。然而,这使得维护和更新成为一件痛苦的事情。您尝试过phantomjs吗?看看这个queston-是的,我试过PhantomJS来获取硒,它比Chromedriver获取硒的速度更快。我还发现,我可以通过提取或标记之间的文本直接获取表格,而不是单独从每个表格元素中提取:driver.find_element_by_tag_nametd->driver.find_element_by_tag_nametbody。感谢您的评论。我试过Chromedriver和无头幻影驱动程序。两者在寻找元素方面都不是很快。Ghost.py看起来很有趣,我会读更多关于它的内容。此外,我还发现了一个名为Scrapy的python webscraper。我会试试看它能不能快一点。是的,你可以试试刮痧。我相信也有一种叫做“美丽之声”的东西。我建议您将问题标题编辑为一些特定的内容,因为人们认为这是一个基于意见的问题,所以会投反对票。看起来非常有趣!我很想在回答中知道人们是否属于他们推荐的框架@HelenDikareva
testcafe chrome test.js