Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Selenium Webdriver的替代方案_Javascript_Selenium_Webdriver - Fatal编程技术网

Javascript Selenium Webdriver的替代方案

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的浏览器

我使用SeleniumWebDriver for C和Python从网站获取数据元素,但是web抓取的速度非常慢。清理35000个数据表花了我大约1,5天的时间。使用SeleniumWebDriver,我可以执行Javascript来获取Java元素。是否有一些可用的库不需要像Webdriver这样的东西在网页上执行Javascript来检索元素,并且能够单击元素?还是有一种更快的硒替代品

我建议使用Selenium+PhantomJSDriver Ghostdriver,它用于无GUI的浏览器自动化。有了它,您可以轻松地在页面中导航,选择元素,您可以选择航班,提交表单,还可以执行一些刮削。还支持Javascript

您可以阅读Selenium文档。您必须下载该文件

中提供了PhantomJSDriver的良好教程

从教程中配置PhantomJSDriverf:

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