1.简介
在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助。
2.select 下拉框
2.1Select类
1.在Selenium中,针对html的标签select多选下拉列表有几种方法:
selectByIndex(index); //根据索引选择 selectByValue(value); //根据value属性选择 selectByVisibleText(text); //根据选项文字选择 注意的是: *index是从0开始的 **Value是option标签的一个属性值,并不是显示在下拉框中的值 ***VisibleText是在option标签中间的值,是显示在下拉框的值
2.四种取消方法:
deselectByIndex(0); deselectByValue(value); deselectByVisibleText(Text); deselectAll(); //取消所有选中
3.下拉选的处理类:Select 如果页面元素是一个下拉框,我们可以将此web元素封装成Select对象。
Select select = new Select(WebElement element); //Select select = new Select(driver.findElement(By.id("xxx"))); //获取所有选项的方法 select.getOptions(); //根据索引选中对应的元素 select.selectByIndex(index); //根据value值选中对应的选项 select.selectByValue(value); //根据文本值选中对应的选项 select.selectByVisibleText(text); //判断是不是多选的选择框返回boolean值 select.isMultiple(); //取消所有的选中 select.deselectAll();
3.select.html
1.准备测试练习select.html,如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>测试Select</title> <style type="text/css"> .button1 { background-color: #f44336; border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 28px; margin-bottom: 100px; text-decoration:none; color: white; } #myAnchor { text-decoration:none; color: white; } </style> </head> <body> <button class="button1"><a id="myAnchor" href="https://www.cnblogs.com/du-hong/">北京-宏哥</a></button></br> 快递邮寄地址: <select id="select_id" name="select_name" class ="select_cls"> <option value="0">请选择</option> <option value="1">山西</option> <option value="2">陕西</option> <option value="3">山东</option> <option value="4">四川</option> <option value="5">河北</option> </select>省_XXX_市_ XXX_街道 </body> </html>
2.页面效果,如下图所示:
4.代码实战练习
4.1代码设计
4.2参考代码
package lessons; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.Select; import org.junit.Test; /** * @author 北京-宏哥 * * 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程) * * 2021年10月16日 */ public class SelectTest { @Test public void test() throws InterruptedException { System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); WebDriver driver =null; driver =new ChromeDriver(); driver.get("file:///C:/Users/DELL/Desktop/test/select.html"); //Select select = new Select(WebElement element); Select select = new Select(driver.findElement(By.id("select_id"))); //获取所有选项的方法 List<WebElement> lst = select.getOptions(); for (WebElement webElement : lst) { System.out.println("获取所有选项的方法依次输出文本值:"+webElement.getText()); } //根据索引选中对应的元素 select.selectByIndex(1); Thread.sleep(5000); //根据value值选中对应的选项 select.selectByValue("4"); Thread.sleep(5000); //根据文本值选中对应的选项 select.selectByVisibleText("山东"); Thread.sleep(5000); //判断是不是多选的选择框返回boolean值 System.out.println(select.isMultiple()); //取消所有的选中 select.deselectAll(); Thread.sleep(5000); } }
4.3运行代码
1.运行代码,右键Run AS->Junit Test,控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作,从视频中可以看到选择的值不断地在修改变化(山西->四川->山东),如下小视频所示:
5.新的select
宏哥发现随着技术的更新换代,现在好多下拉选择都很少用以前那种的方式,而是采用一种类似pop弹出的效果,直接弹出一个一个页面选择,如下图所示:
12306网站:
快递:
5.1项目实战
宏哥这里就以12306网站的“出发地”选择框给小伙伴们或者童鞋们来打个样。
具体步骤:
1.首先访问12306网站;
2.定位到出发站,点击;
3.弹出选项,定位要选择的选项,点击即可。
5.2代码设计
5.3参考代码
package lessons; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; /** * @author 北京-宏哥 * * 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程) * * 2021年10月16日 */ public class Select { public static void main(String[] args) throws InterruptedException { System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("https://www.12306.cn/"); Thread.sleep(5000); //By id 定位 WebElement fromStationText = driver.findElement(By.id( "fromStationText" )); fromStationText.click(); Thread.sleep(2000); WebElement fromStation = driver.findElement(By.xpath("//div/ul/li[text()='北京']")); fromStation.click(); } }
5.4运行代码
1.运行代码,右键Run AS->java Application,控制台输出,如下图所示:
2.运行代码后电脑端的浏览器的动作,从视频中可以看到宏哥成功的将“出发站”选择为“北京”,如下小视频所示:
6.小结
其实无论哪种你只要定位到就可以操作实现自动化,只不过是以前的selenium封装好select类,直接调用比较方便而已,好了时间不早了,今天就分享到这里!!!