51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 727|回复: 2
打印 上一主题 下一主题

Selenium + Java

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-18 12:02:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近公司用到的东西,关于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)丢到该目录下。

我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>ath,将“C:\driver”目录添加到Path的值中。


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


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

3.验证浏览器驱动

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2022-7-18 12:04:33 | 只看该作者
(三)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")

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 10:14 , Processed in 0.065662 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表