51Testing软件测试论坛

标题: Selenium + Java [打印本页]

作者: 草帽路飞UU    时间: 2022-7-18 12:02
标题: Selenium + Java
最近公司用到的东西,关于Selenium的技术,第一次接触到爬虫和Selenium,不是很了解,就学习一下。首先,Selenium是一个用于Web应用程序测试的工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样(都能百度到,不再具体说了),下面说一下本人的操作。
(一)安装Selenium的方法:        第一种:通过jar包安装

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

[attach]139198[/attach]

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


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

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


<!-- selenium-java -->


<dependency>


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


      <artifactId>selenium-java</artifactId>


      <version>3.14.0</version>


</dependency>

[attach]139199[/attach]

下面就开始写代码了。

[attach]139200[/attach]

运行代码时会报错,错误提示是没有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参数

[attach]139201[/attach]

3.验证浏览器驱动

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

[attach]139202[/attach]



作者: 草帽路飞UU    时间: 2022-7-18 12:04
(三)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())
具体使用根据你的需求来的:

本人代码以及运行的效果
[attach]139206[/attach]
控制太输入的结果:
[attach]139207[/attach]
浏览器的效果:
[attach]139208[/attach]
通过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")

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


作者: luomuyishui2    时间: 2022-7-18 13:26
感谢分享




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2