题目
测试网址:https://nj.zu.anjuke.com/
环境配置
ChromeDriver
1. 查看自己Chrome浏览器的版本
在地址栏输入
chrome://version
这里显示的就是浏览器的版本
可以看到我的浏览器的版本为106.0.5249.119
2. 下载对应版本的ChromeDriver
进入下载页面,按CTRL+F打开搜索框,把刚才查到的版本号粘贴进去
如果碰到查不到的情况,比如我这个版本是最新的,没有查到驱动,那么可以下载离得最近的一个版本的驱动
比如查找106.0.5249开头的驱动,找到了两个,那么下载其中最新的就可以
两个里面最新的是106.0.5249.61,点击文件夹进入,然后点击win32的zip压缩包下载
3. 添加环境变量
解压下载好的压缩包,得到一个chromedriver.exe文件,把它的所在路径添加到环境变量中
打开cmd,输入
chromedriver
如果看到如下输出,说明安装成功
安装Selenium
1. 官网下载jar包
进入官网,点击下载Selenium Server
2. 在项目中添加Selenium
新建一个项目,点击IDEA左上方的“文件->项目结构->库”,点击“+”,选择Java,然后找到刚才下载的jar包,点击“确定”,即可成功导入
代码
学习Selenium
官方自带中文文档,其中:
elements是讲网页元素相关的api
interactions是讲浏览器交互相关的api
actions是讲模拟鼠标、键盘等设备的api
测试代码
思路:首先打开浏览器,跳转到指定网站,然后根据测试需求文档的内容,在官方文档中查找相应的api,最后对于每一步,按步骤依次写代码即可
整个测试不复杂,只需要拿xpath就可以找到所有的元素
xpath在《信息技术基础认知与实践》(Python方向)这门课中教过,是写爬虫的时候用到的一种查找网页元素的方法
最后附上代码和注释
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class anjuke {
public static void test(WebDriver driver) throws InterruptedException {
//打开安居客网页版
driver.get("https://nj.zu.anjuke.com/");
Thread.sleep(500);
//点击租房
driver.findElement(By.xpath("/html/body/div[2]/div/ul/li[4]/a")).click();
Thread.sleep(500);
//地址选择“南京”
driver.findElement(By.xpath("//*[@id='switch_apf_id_5']/i")).click();
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='city_list']/dl[2]/dd/a[4]")).click();
Thread.sleep(500);
//点击“地铁找房”
driver.findElement(By.xpath("/html/body/div[4]/ul/li[2]/a")).click();
Thread.sleep(500);
//选择“2号线”,选择“马群”
driver.findElement(By.xpath("/html/body/div[5]/div[2]/div[1]/span[2]/div/a[3]")).click();
Thread.sleep(500);
driver.findElement(By.xpath("/html/body/div[5]/div[2]/div[1]/span[2]/div/div/a[24]")).click();
Thread.sleep(500);
//price: 5000-8000
driver.findElement(By.xpath("//*[@id='from-price']")).sendKeys("5000");
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='to-price']")).sendKeys("8000");
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='pricerange_search']")).click();
//选择“整租”
driver.findElement(By.xpath("/html/body/div[5]/div[2]/div[4]/span[2]/a[2]")).click();
Thread.sleep(500);
//房屋类型选择“普通住宅”
driver.findElement(By.xpath("//*[@id='condmenu']/ul/li[2]/a")).click();
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='condmenu']/ul/li[2]/ul/li[2]/a")).click();
Thread.sleep(500);
//在搜索框中搜索“经天路”,并点击“搜索”
driver.findElement(By.xpath("//*[@id='search-rent']")).sendKeys("经天路");
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='search-button']")).click();
Thread.sleep(500);
//选择“视频看房”
driver.findElement(By.xpath("//*[@id='list-content']/div[1]/a[2]")).click();
Thread.sleep(500);
//依次点击“租金”、“最新”排序进行查看
driver.findElement(By.xpath("//*[@id='list-content']/div[2]/div/a[2]")).click();
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id='list-content']/div[2]/div/a[3]")).click();
Thread.sleep(500);
//点击第一个搜索出来的房源进行查看
driver.findElement(By.xpath("//*[@id='list-content']/div[3]")).click();
Thread.sleep(5000);
}
public static void main() {
WebDriver driver = new ChromeDriver();
try {
test(driver);
} catch (Exception e) {
e.printStackTrace();
} finally {
driver.quit();
}
}
}
转载:https://blog.csdn.net/qq_35395195/article/details/127449599