`
xinklabi
  • 浏览: 1562457 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

自动化测试工具 Selenium WebDriver 入门教程(针对主流浏览器)

 
阅读更多

这里只记录学习  Selenium WebDriver 的过程,尤其是运行时可能出现的问题,学习 java 与  Selenium WebDriver 配合的方法。 

一、下载文件 

先要去官网(http://seleniumhq.org/download/)下载必需的文件: 

  • Selenium IDE (专门用于 FireFox 测试的独立界面,可以录制测试步骤,但我更倾向于写代码做标准的功能测试)
  • Selenium Server (可以输入指令控制、可以解决跨域的 js 问题,等到后面学到了再讲吧)
  • The Internet Explorer Driver Server (专门用于IE测试的)
  • Selenium Client Drivers (可以找到你熟悉的语言,例如我选择的 Java)
  • Third Party Browser Drivers NOT SUPPORTED/DEVELOPED by seleniumhq(第三方开发的 Selenium 插件,第一个就是 Chrome 的,否则你就没办法测试 Chrome 了)
  • 其他的,就根据你自己的需要寻找吧,目前这些足够我用了。


二、安装 & 运行 

貌似摆弄新东西时,只有 “Hello World” 蹦出来以后,我们这些初学者才会感到情绪稳定,那就赶紧开始吧。 

对于初期打算直接用编程方式制作测试用例的情况来说,Selenium IDE、Selenium Server 都可以不用安装执行。 
英语好的朋友可以直接看官网的文档(http://seleniumhq.org/documentation/)就能够开始使用了。 
看中文的,就继续听我唠叨: 

【1. 建立 Maven 工程】 
Selenium 支持 maven 工程,这会让你的工作更加简便。 

用 Eclipse 建个 Maven 的工程,建成后,直接修改 pom.xml,(参考:http://seleniumhq.org/docs/03_webdriver.html#setting-up-a-selenium-webdriver-project

 

01 <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
02     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
03     <modelVersion>4.0.0</modelVersion>
04     <groupId>Selenium2Test</groupId>
05     <artifactId>Selenium2Test</artifactId>
06     <version>1.0</version>
07     <dependencies>
08         <dependency>
09             <groupId>org.seleniumhq.selenium</groupId>
10             <artifactId>selenium-java</artifactId>
11             <version>2.25.0</version>
12         </dependency>
13         <dependency>
14             <groupId>com.opera</groupId>
15             <artifactId>operadriver</artifactId>
16         </dependency>
17     </dependencies>
18     <dependencyManagement>
19         <dependencies>
20             <dependency>
21                 <groupId>com.opera</groupId>
22                 <artifactId>operadriver</artifactId>
23                 <version>0.16</version>
24                 <exclusions>
25                     <exclusion>
26                         <groupId>org.seleniumhq.selenium</groupId>
27                         <artifactId>selenium-remote-driver</artifactId>
28                     </exclusion>
29                 </exclusions>
30             </dependency>
31         </dependencies>
32     </dependencyManagement>
33 </project>

 

pom.xml 修改保存后,eclipse 会自动把需要的 jar 包下载完成。


【2. 测试 FireFox】 
Selenium 最初就是在 FireFox 上做起来的插件,所以我们先来搭建 FireFox 的环境。 
确保你正确安装了 FireFox 后,就可以直接编写 java 代码测试喽。 

在 lesson1 目录下建立 ExampleForFireFox.java 
(因为国内不少朋友访问 google 的时候会出问题,所以我就把代码中的 google 变成 baidu 了) 

01 package lesson1;
02  
03 import org.openqa.selenium.By;
04 import org.openqa.selenium.WebDriver;
05 import org.openqa.selenium.WebElement;
06 import org.openqa.selenium.firefox.FirefoxDriver;
07 import org.openqa.selenium.support.ui.ExpectedCondition;
08 import org.openqa.selenium.support.ui.WebDriverWait;
09  
10 public class ExampleForFireFox  {
11     public static void main(String[] args) {
12         // 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置
13 //      System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe");
14         // 创建一个 FireFox 的浏览器实例
15         WebDriver driver = new FirefoxDriver();
16  
17         // 让浏览器访问 Baidu
18         driver.get("http://www.baidu.com");
19         // 用下面代码也可以实现
20         // driver.navigate().to("http://www.baidu.com");
21  
22         // 获取 网页的 title
23         System.out.println("1 Page title is: " + driver.getTitle());
24  
25         // 通过 id 找到 input 的 DOM
26         WebElement element = driver.findElement(By.id("kw"));
27  
28         // 输入关键字
29         element.sendKeys("zTree");
30  
31         // 提交 input 所在的  form
32         element.submit();
33          
34         // 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
35         (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
36             public Boolean apply(WebDriver d) {
37                 return d.getTitle().toLowerCase().endsWith("ztree");
38             }
39         });
40  
41         // 显示搜索结果页面的 title
42         System.out.println("2 Page title is: " + driver.getTitle());
43          
44         //关闭浏览器
45         driver.quit();
46     }
47 }


普通情况下,直接运行代码就可以看到会自动弹出 FireFox 窗口,访问 baidu.com,然后输入关键字并查询,一切都是自动完成的。 

错误提醒: 
1)Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. 
出现这个错误,是说明你的 FireFox 文件并没有安装在默认目录下,这时候需要在最开始执行:System.setProperty 设置环境变量  "webdriver.firefox.bin" 将自己机器上 FireFox 的正确路径设置完毕后即可。 

2)Exception in thread "main" org.openqa.selenium.UnsupportedCommandException: Bad request 

出现这个错误,很有意思。 查了一下 有人说应该是 hosts 出现了问题,加上一个 127.0.0.1  localhost 就行了,但我的 hosts 上肯定有这个玩意,为啥也会出现这个问题呢? 

经过调试,发现 127.0.0.1 localhost 的设置必须要在 hosts 文件的最开始,而且如果后面有其他设置后,也不要再出现同样的 127.0.0.1 localhost ,只要有就会出错。(因为我为了方便访问 google 的网站,专门加入了 smarthosts 的内容,导致了 localhost 的重复)

【3. 测试 Chrome】 
Chrome 虽然不是 Selenium 的原配,但是没办法,她太火辣了,绝对不能抛下她不管的。 
把 ExampleForFireFox.java 稍微修改就可以制作出一个 ExampleForChrome.java ,直接把 new FireFoxDriver() 修改为 new ChromeDriver() 你会发现还是行不通。 

错误如下: 
1)Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://code.google.com/p/chromedriver/downloads/list 
这应该是找不到 chrome 的文件,好吧,利用 System.setProperty 方法添加路径,这里要注意,是 “webdriver.chrome.driver” 可不是“webdriver.chrome.bin 

设置路径后还是会报错: 
2)[6416:4580:1204/173852:ERROR:gpu_info_collector_win.cc(91)] Can't retrieve a valid WinSAT assessment. 
这个貌似是因为 Selenium 无法直接启动 Chrome 导致的,必须要通过前面咱们下载 Chrome 的第三方插件 ChromeDriver,去看第一个错误中提示给你的 网址:http://code.google.com/p/selenium/wiki/ChromeDriver 
按照人家给的例子来修改我们的测试代码吧: 

01 package lesson1;
02  
03 import java.io.File;
04 import java.io.IOException;
05  
06 import org.openqa.selenium.By;
07 import org.openqa.selenium.WebDriver;
08 import org.openqa.selenium.WebElement;
09 import org.openqa.selenium.chrome.ChromeDriverService;
10 import org.openqa.selenium.remote.DesiredCapabilities;
11 import org.openqa.selenium.remote.RemoteWebDriver;
12 import org.openqa.selenium.support.ui.ExpectedCondition;
13 import org.openqa.selenium.support.ui.WebDriverWait;
14  
15 public class ExampleForChrome {
16     public static void main(String[] args) throws IOException {
17         // 设置 chrome 的路径
18         System.setProperty(
19                 "webdriver.chrome.driver",
20                 "C:\\Documents and Settings\\sq\\Local Settings\\Application Data\\Google\\Chrome\\Application\\chrome.exe");
21         // 创建一个 ChromeDriver 的接口,用于连接 Chrome
22         @SuppressWarnings("deprecation")
23         ChromeDriverService service = new ChromeDriverService.Builder()
24                 .usingChromeDriverExecutable(
25                         new File(
26                                 "E:\\Selenium WebDriver\\chromedriver_win_23.0.1240.0\\chromedriver.exe"))
27                 .usingAnyFreePort().build();
28         service.start();
29         // 创建一个 Chrome 的浏览器实例
30         WebDriver driver = new RemoteWebDriver(service.getUrl(),
31                 DesiredCapabilities.chrome());
32  
33         // 让浏览器访问 Baidu
34         driver.get("http://www.baidu.com");
35         // 用下面代码也可以实现
36         // driver.navigate().to("http://www.baidu.com");
37  
38         // 获取 网页的 title
39         System.out.println("1 Page title is: " + driver.getTitle());
40  
41         // 通过 id 找到 input 的 DOM
42         WebElement element = driver.findElement(By.id("kw"));
43  
44         // 输入关键字
45         element.sendKeys("zTree");
46  
47         // 提交 input 所在的 form
48         element.submit();
49  
50         // 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
51         (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
52             public Boolean apply(WebDriver d) {
53                 return d.getTitle().toLowerCase().endsWith("ztree");
54             }
55         });
56  
57         // 显示搜索结果页面的 title
58         System.out.println("2 Page title is: " + driver.getTitle());
59  
60         // 关闭浏览器
61         driver.quit();
62         // 关闭 ChromeDriver 接口
63         service.stop();
64  
65     }
66 }


运行一下看看,是不是一切OK了? 

补充:仔细看了一下官网的介绍:Chrome Driver is maintained / supported by the Chromium project iteslf.  看来如果使用 new ChromeDriver() 的话,应该要安装 Chromium 而不是 Chrome,我现在懒得折腾了,有兴趣的童鞋可以试验一下。 

【4. 测试 IE】 
想逃避 IE 吗?? 作为前端开发,IE 你是必须要面对的,冲吧! 
其实你会发现, Selenium 主要也就是针对 FireFox 和 IE 来制作的,所以把 FireFox 的代码修改为 IE 的,那是相当的容易,只需要简单地两步: 
1)把 ExampleForFireFox.java 另存为 ExampleForIE.java  
2)把 WebDriver driver = new FirefoxDriver(); 修改为 WebDriver driver = new InternetExplorerDriver(); 
3)一般大家的 IE都是默认路径吧,所以也就不用设置 property 了 

01 package lesson1;
02  
03 import org.openqa.selenium.By;
04 import org.openqa.selenium.WebDriver;
05 import org.openqa.selenium.WebElement;
06 import org.openqa.selenium.ie.InternetExplorerDriver;
07 import org.openqa.selenium.support.ui.ExpectedCondition;
08 import org.openqa.selenium.support.ui.WebDriverWait;
09  
10 public class ExampleForIE {
11     public static void main(String[] args) {
12         // 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置
13         // System.setProperty("webdriver.firefox.bin", "D:\\Program Files\\Mozilla Firefox\\firefox.exe");
14         // 创建一个 FireFox 的浏览器实例
15         WebDriver driver = new InternetExplorerDriver();
16  
17         // 让浏览器访问 Baidu
18         driver.get("http://www.baidu.com");
19         // 用下面代码也可以实现
20         // driver.navigate().to("http://www.baidu.com");
21  
22         // 获取 网页的 title
23         System.out.println("1 Page title is: " + driver.getTitle());
24  
25         // 通过 id 找到 input 的 DOM
26         WebElement element = driver.findElement(By.id("kw"));
27  
28         // 输入关键字
29         element.sendKeys("zTree");
30  
31         // 提交 input 所在的 form
32         element.submit();
33  
34         // 通过判断 title 内容等待搜索页面加载完毕,间隔10秒
35         (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
36             public Boolean apply(WebDriver d) {
37                 return d.getTitle().toLowerCase().endsWith("ztree");
38             }
39         });
40  
41         // 显示搜索结果页面的 title
42         System.out.println("2 Page title is: " + driver.getTitle());
43  
44         // 关闭浏览器
45         driver.quit();
46     }
47 }


运行一下,是不是 so easy? 

入门工作完成,现在完全可以利用 java 代码,让 Selenium 自动执行我们设置好的测试用例了,不过.....这仅仅是个开始。

分享到:
评论
1 楼 世界尽头没有你 2016-10-08  
Selenium自动化测试从入门到精通(Java版)
百度网盘地址: http://pan.baidu.com/s/1hrTGakk 密码: pfk2

相关推荐

    node-v4.8.6-win-x64.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基础运维技能(下)md格式笔记

    基础运维技能(下)md格式笔记

    node-v8.1.2-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    黑马程序员 C语言学习笔记

    持续更新

    PCL-1.14.1-AllInOne-msvc2022-win64+pdb-msvc2022-win64

    PCL-1.14.1-AllInOne-msvc2022-win64+pdb-msvc2022-win64

    DSmall商城系统源代码

    PC商城系统源码

    Defender Control v2.1(win11 禁用defender服务工具).zip

    Defender Control v2.1(win11 禁用defender服务工具).zip

    node-v8.8.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v8.9.0-linux-ppc64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v4.7.2-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    2024年中国超声非侵入式腐蚀检测传感器行业研究报告.docx

    2024年中国超声非侵入式腐蚀检测传感器行业研究报告

    基于知识图谱的问答系统,结合MetaQA知识图谱,用于解决电影领域的问答问题

    【作品名称】:基于知识图谱的问答系统,结合MetaQA知识图谱,用于解决电影领域的问答问题 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ## 项目目录结构: 1、train_KGE目录下为训练知识图谱嵌入模型的相关代码,包含以下知识图谱嵌入方法: - RotatE - TransE - DistMult - ComplEx 2、KGQA_system目录下包含了问答系统的实现代码,包含以下几个模块: - 知识图谱嵌入模块 - 问题嵌入模块 - 关系预测模块 - 答案生成模块

    node-v8.8.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    ISO 3452-3-2013 无损检测渗透检测第3部分:参考试块.pdf

    ISO 3452-3-2013 无损检测渗透检测第3部分:参考试块.pdf

    node-v8.1.1-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    用于目标检测的遥感图像数据集

    目标检测遥感数据集。包括训练集、验证集和测试集共1400张遥感图像及相应标注。已处理为适用yolov5的格式。

    node-v8.0.0-linux-ppc64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    深度学习工具包:Matlab实现的RNN-LSTM与CNN模型 - 专业版下载

    RNN-LSTM(循环神经网络-长短期记忆网络)是一种在序列数据处理中表现出色的深度学习模型,特别擅长于处理和预测时间序列数据。卷积神经网络(CNN)则在图像识别和处理领域有着广泛的应用,以其局部感受野和权重共享特性而闻名。 "RNN-LSTM卷积神经网络Matlab实现"资源为用户提供了一个在Matlab环境中实现这两种网络的机会。该资源包可能包含以下内容: 1. RNN-LSTM网络的Matlab代码实现,允许用户对序列数据进行深入分析和预测。 2. CNN网络的Matlab代码,适用于图像数据的分类和特征提取任务。 3. 示例数据集和使用教程,帮助用户快速理解并应用这些模型。 4. 定制化接口,使用户能够根据自己的需求调整网络结构和参数。 5. 详细的注释和文档,方便用户学习和理解代码的工作原理。 通过这个资源包,研究人员和开发者可以在Matlab平台上,利用RNN-LSTM和CNN的强大功能,进行复杂的数据分析和模式识别任务。无论是在学术研究还是在工业应用中,该资源都能提供强大的支持。

    typescript-4.3.1-rc.tgz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics