自动化测试selenium(自动化测试selenium框架)

一.简单介绍:

1.1功能:

编写代码,让程序自动运行;回归测试;系统监控

1.2步骤:

分析测试需求,选择方案,指定测试计划,环境搭建,测试用例,编码,分析结果

1.3自动化测试和手工测试的区别:

步骤更加详细,包括了检验输入框或者按钮的状态

1.4测试用例几个模块:

id,模块,测试点,前提条件,步骤,预期结果,实际结果

1.5优势及工作原理:

开源,多游览器,多平台,api齐全

编写代码创建一个driver,生成一个用于监控的server游览器,浏览器发送特定的HTTP请求,然后解析请求并作出相应的响应。

1.6 IDE以及环境的配置:

Selenium-Java.jar,idea,jdk以及JDK环境配置

1. 创建一个spring boot工程,导入selenium-java.jar包,写一个简单的demo

public class demo {

public static void main(String[] args) {

//声明一个driver

WebDriver driver;

//设置驱动的位置

System.setProperty("webdriver.chrome.driver", "D:\\python\\chromedriver.exe");

driver = new ChromeDriver();

driver.get("http://www.baidu.com");

}

}

HTML定位基础知识:有id的话使用id进行定位,没有的话使用class进行定位

二、详细介绍

2.1元素定位:

2.1.1十大定位方法

driver.findElement(By.id()),by.className(),by.linkText()...

browser.find_element_by_id()

browser.find_element_by_name()

browser.find_element_by_xpath()

browser.find_element_by_tag_name()

browser.find_element_by_link_text()

browser.find_element_by_class_name()

browser.find_element_by_css_selector()

browser.find_element_by_partial_link_text()

2.2输入框:

clear/send/getAttribute

2.3单选框:

click/xpath/clear/isSelect,

xpath(可以选择父节点的所有子孙节点,也可以选择一个子孙节点)所有的时使用//双斜杠

2.4多选框:

click/clear/isSelect/isEnabled

public WebDriver webDriver;

public void InitDriver(){

System.setProperty("webdriver.chrome.driver", "D:\\python\\chromedriver.exe");

webDriver = new ChromeDriver();

webDriver.get("https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F&sms=5");

webDriver.manage().window().maximize();

}

public void inputBox(){

//定位分析

webDriver.findElement(By.id("TANGRAM__PSP_3__footerULoginBtn")).click();

webDriver.findElement(By.id("TANGRAM__PSP_3__userName")).sendKeys("15638858865");

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

//清除

webDriver.findElement(By.id("TANGRAM__PSP_3__userName")).clear();

//获取属性值

String attribute = webDriver.findElement(By.id("TANGRAM__PSP_3__userName")).getAttribute("placeholder");

System.out.println(attribute);

/*webDriver.findElement(By.id("TANGRAM__PSP_3__password")).sendKeys("123456");

webDriver.findElement(By.id("TANGRAM__PSP_3__submit")).click();*/

}

2.5模拟鼠标移动,键盘按键等没有特定的执行对象的操作

yuanlai = browser.find_element_by_css_selector('#draggable')

mubiao = browser.find_element_by_css_selector('#droppable')

a = ActionChains(browser)

a.drag_and_drop(yuanlai,mubiao)

a.perform()

2.6拖动滑动条

# execute_script()将进度条拉到最下面,然后弹出提示框

browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')

browser.execute_script('alert("已经到最下面了")')

2.7获取节点信息

1. 获取属性 input.getAttribute()

2. 获取文本 input.text

3. 获取ID,位置,标签名和大小

input.id,input.location,input.tag_Name,input.size

2.8切换frame

当我们使用selenium打开页面,默认是在父页面里执行的,但是呢,这种网页我们往往是获取不到子页面的节点,所以要使用switch_to.frame()来跳转页面,然后再进行相对应的操作

然后尝试获取父页面的某个节点,如果获取不到就报错,接下来就换回父页面去获取该节点,就能成功了。

2.9延时等待

1. 隐式等待:

查找某个节点的时候,隐式等待就会等待固定的时间,如果时间到了你还没有来,他就会发脾气然后向上级打小报告说你没有出现

browser = webdriver.Chrome

browser.implicitly_wait(10)

browser.get('https://www.baidu.com')

2. 显式等待

2.10后退前进:

使用浏览器都有后退前进功能,在selenium中,back()表示后退,forward()表示前进。

browser = webdriver.Chrome()

browser .get('https://www.baidu.com')

browser.back()

time.sleep(3)

browser.forward()

browser.close()

2.11获取cookies:

browser = webdriver.Chrome()

browser.get('https://www.baidu.com')

browser.get_cookies()

browser.add_cookie({‘name’:’name’,’domain’:’www.baidu.com’,’value’:’germay’})

browser.get_cookies()

browser.delete_all_cookies()

print(browser.get_cookies())

2.12选项卡管理:

browser = webdriver.Chrome()

browser.get('https://www.baidu.com')

# window.open()新开启一个选项卡

browser.execute_script('window.open()')

# window_handles 用于获取当前开启的所有选项卡,返回的是选项卡的代号列表

print(browser.window_handles)

# switch_to_window用于切换选项卡

browser.switch_to_window(browser.window_handles[1])

browser.get('https://www.taobao.com')

time.sleep(3)

browser.switch_to_window(browser.window_handles[0])

browser.get('https://python.org')

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-2617.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档