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 |