新的开始
由于之前都是在Windows下使用各种开发工具,此次转战Mac平台,从系统的熟悉,到基本软件的安装也是经历了一个不小的转变。
本文的目的:使用Mac系统,搭建一个Selenium平台,然后从IDEA中打开Chrome浏览器,在网上看过了各种版本,自己实践起来确实遇到不少问题,做个简要地记录。
环境搭建
- IDEA的安装:目前IDEA分为“究极”版和社区版,我使用的是破解的究极版本,在此提供网站,里面有很多MAC软件的下载和破解流程,相当详细,不同系统的软件阵地,真是各有一方天地。 精品MAC应用分享
- Selenium的安装:两种方法,一种是直接进行jar包的下载,然后根据需要进行导入,另一种方法是在安装好的IDEA中建立Maven工程,直接通过pom文件进行导入。
第一种方法:下载Selenium Standalone Server 和selenium-java-*
第二种方法:直接在工程中导入,可在最新Maven库中查找selenium的各种版本 - Webdriver的安装:本次我们使用最新版的Chrome进行selenium的调试,需要下载对应版本的浏览器的驱动,如何知道自己Chrome的版本,请在浏览器中输入:chrome://version/ 进行查看,我本次使用的浏览器版本号为:80.0.3987.149 (正式版本) (64 位),但是在驱动网站并没有80.0.3987.149 对应的驱动,错误的下载了一个叫LATEST_RELEASE_80.0.3987的文件,调试几次发现不对劲,然后在驱动下载网站下载了80.0.3987.16版本的驱动,事实证明是没有问题的。
驱动安装好之后将文件放置在/usr/local/bin目录下
代码构建
以上步骤操作无误之后,打开IDEA,建立Spring Boot项目,打开pom文件,写入依赖:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0-alpha-5</version>
</dependency>
为了后续方便,又引入了以下依赖:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.2-jre</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
引入以来之后,开始写代码,正常建立一个Java类进行测试,我的代码如下:
package com.example.demo;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Selenium_test {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
WebDriver driver=new ChromeDriver();
driver.get("http://taobao.com");
String title=driver.getTitle();
System.out.println(title);
driver.close();
}
}
执行代码,控制栏结果显示:
Starting ChromeDriver 80.0.3987.106 (f68069574609230cf9b635c1bf81bb53a-refs/branch-heads/3987@{#882}) on port 30060
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
三月 **, 2020 ******** 下午 org.openqa.selenium.remote.ProtocolHandshake createSession
信息: Detected dialect: W3C
[1585120476.302][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120476.865][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120477.326][SEVERE]: Timed out receiving message from renderer: 0.100
[1585120477.623][SEVERE]: Timed out receiving message from renderer: 0.100
淘宝网 - 淘!我喜欢
另外会有如下显示:
在写代码的时候需要注意几个小问题:
浏览器的驱动在放入相应的文件夹之后,需要进行设置,即代码:
System.setProperty("webdriver.chrome.driver","/usr/local/bin/chromedriver");
此处要写完整路径"/usr/local/bin/这样写都会出现驱动初始化报错问题,第一次玩Selenium,还算比较可以,期待学习更多有趣的功能模块来玩耍。
如果觉得本文写的还不错的伙伴,可以给个关注一起交流进步,如果有在找工作且对阿里感兴趣的伙伴,也可以发简历给我进行内推: