Selenium + Java

最近公司用到的东西,关于Selenium的技术,第一次接触到爬虫和Selenium,不是很了解,就学习一下。首先,Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样(都能百度到,不再具体说了),下面说一下本人的操作。

(一)安装Selenium的方法:

        第一种:通过jar包安装

点击 Selenium下载 (https://docs.seleniumhq.org/download/)链接 你会看到Selenium Standalone Server的介绍:

本人下载的是这个,下载后的文件放在你习惯放置项目相关的地方。

       第二种:通过Maven安装(推荐使用)

在pom.xml 配置Selenium 相关的dependency。

<!-- selenium-java -->

<dependency>

       <groupId>org.seleniumhq.selenium</groupId>

      <artifactId>selenium-java</artifactId>

      <version>3.14.0</version>

</dependency>

 

下面就开始写代码了。

运行代码时会报错,错误提示是没有chrome的驱动,需要下载驱动。

(二)selenium3 浏览器驱动

1.下载浏览器驱动

当selenium升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。
各浏览器下载地址:
Firefox浏览器驱动:geckodriver
Chrome浏览器驱动:chromedrivertaobao备用地址
IE浏览器驱动:IEDriverServer
Edge浏览器驱动:MicrosoftWebDriver
Opera浏览器驱动:operadriver
PhantomJS浏览器驱动:phantomjs
注:部分浏览器驱动地址需要科学上网。

2.设置浏览器驱动

设置浏览器的地址非常简单。 我们可以手动创建一个存放浏览器驱动的目录,如: C:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。
我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“C:\driver”目录添加到Path的值中。

以上的方法是在百度中查到别人的配置方法,本人尝试了几次没有成功,就使用了另外的方法,配置如下:

在启动的配置里面配置chrome驱动需要的path参数

 

3.验证浏览器驱动

再次启动项目就ok了,展示效果如下:

(三)selenium元素定位

Selenium提供了8种定位方式。

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector

这8种定位方式在Python selenium中所对应的方法为:

  • findElement(By.id())
  • findElement(By.name())
  • findElement(By.className())
  • findElement(By.tagName())
  • findElement(By.linkText())
  • findElement(By.partialLinkText())
  • findElement(By.xpath())
  • findElement(By.cssSelector())

具体使用根据你的需求来的:

本人代码以及运行的效果

控制太输入的结果:

浏览器的效果:

通过xpath定位,xpath定位有N种写法,这里列几个常用写法:

driver.findElement(By.xpath("//*[@id='mobile']"))
driver.findElement(By.xpath("//*[@name='viewport']"))
driver.findElement(By.xpath("//input[@class='login_container']"))
driver.findElement(By.xpath("/html/body/form/span/input"))
driver.findElement(By.xpath("//span[@class='soutu-btn']/input"))
driver.findElement(By.xpath("//form[@id='form']/span/input"))
driver.findElement(By.xpath("//input[@id='' and @name='']"))

通过css定位,css定位有N种写法,这里列几个常用写法:

driver.findElement(By.cssSelector("#mobile")
driver.findElement(By.cssSelector("[name=viewport]")
driver.findElement(By.cssSelector(".login_container")
driver.findElement(By.cssSelector("html > body > form > span > input")
driver.findElement(By.cssSelector("span.soutu-btn> input#kw")
driver.findElement(By.cssSelector("form#form > span > input")

由于刚学习,暂时学到了这么多,以后在做补充。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值