web端自动化测试在回归测试、兼容测试扮演着举足轻重的角色,作为web自动化测试工程师,日常工作主要的部分就是编写自动化测试用例代码,借助的开源框架来说,目前市场占有率较高的仍然是selenium。

如何使用selenium完成web页面元素的定位和操作,是web自动化测试工程师用例代码中的主要工作,元素定位主要有8种,定位到元素后,需要做的就是元素行为的模拟,比如点击按钮元素、在文本框输入内容等等,**如何使用selenium实现元素操作呢?**以下列举常见的元素操作。

右键目标元素

 1WebElement element = driver.findElement(定位方式方法);
 2//定义WebElement selenium元素对象
 3Actions actions = new Actions(driver);
 4//定义Actions selenium元素操作对象
 5actions.contextClick(element).perform();
 6// 通过actions对象触发鼠标右键点击
 7Robot robot = new Robot();
 8//定义Robot selenium键盘操作对象
 9robot.keyPress(KeyEvent.VK_DOWN);
10// 通过robot按下方向键中的下键    
11robot.keyRelease(KeyEvent.VK_DOWN);
12// 通过robo松开方向下键
13Thread.sleep(1000L);
14robot.keyPress(KeyEvent.VK_ENTER);
15// 按下回车键 
16robot.keyRelease(KeyEvent.VK_ENTER);
17// 松开回车键

输入框目标元素的清空输入

1WebElement element = driver.findElement(定位方式方法);
2//定义WebElement selenium元素对象
3element.clear();
4 //将输入框清空
5element.sendKeys(“测试”);
6//在输入框中输入内容  测试
7element.getText();
8//获取输入框的文本内容:

多选框目标元素的全部勾选

1List<WebElement> elements = driver.findElements(定位方式方法);
2//定义WebElement selenium元素对象集合
3for (int i = 0; i < elements.size(); i++) {
4       elements.get(i).click(); //全部勾选多选框
5}

多选框目标元素的随机勾选2个

 1List<WebElement> elements = driver.findElements(定位方式方法);
 2//定义WebElement selenium元素对象集合
 3Set<Integer> set = new HashSet<>();
 4//定义HashSet集合对象
 5do{
 6      Random random = new Random();
 7     //定义Random对象
 8      int temp = random.nextInt(elements.size());
 9      //获取随机数
10       set.add(temp);
11     //将获取的随机数存到HashSet集合对象
12 }while (set.size()<2);
13
14 for (Integer integer : set) {
15      elements.get(integer).click();//随机勾选2个多选选框
16}

弹窗对话框目标元素的操作

 1WebElement element = driver.findElement(定位方式方法);
 2//定义WebElement selenium元素对象
 3element.click();
 4 //元素点击触发弹窗对话框出现
 5Alert alert = driver.switchTo().alert();
 6//定义Alert selenium弹窗对象
 7alert.accept();  
 8//弹窗对话框点确定按钮
 9alert.dismiss();  
10//弹窗对话框点取消按钮
11alert.sendKeys(“测试”);
12//弹窗对话框中输入框输入  测试

浏览器基本操作以及鼠标操作

 1System.setProperty("webdriver.chrome.driver", "webdrivers/chromedriver.exe");
 2WebDriver driver = new ChromeDriver();
 3//定义ChromeDriver对象
 4driver.manage().window().maximize();
 5//浏览器窗口最大化
 6driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
 7//设置隐式智能等待时间5秒
 8driver.get("http://www.mtxhsop.com:3000/");
 9//访问商城网站首页
10driver.navigate().refresh();
11//刷新浏览器当前页面
12
13// 实例化actions类。调用doubleClick方法,双击目标元素
14WebElement element = driver.findElement(定位方式方法);
15//实例化WebElement对象,element该对象为双击目标对象
16Actions actions = new Actions(driver);
17// 实例化Actions类对象:actions,并将driver传给actions
18actions.doubleClick(day).perform();
19// 双击目标元素element
20
21
22// 调用moveToElement方法,把鼠标移动到目标元素上
23WebElement Qui = driver.findElement(定位方式方法);
24actions.moveToElement(Qui).perform();

调用JS脚本

1WebDriver driver=new ChromeDriver();
2//定义ChromeDriver对象
3JavascriptExecutor js = (JavascriptExecutor) driver;
4//将ChromeDriver对象强转成JavascriptExecutor对象
5js.executeScript("JS脚本");
6//使用JavascriptExecutor对象调用JS脚本

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

Selenium常见元素操作,学完就能上手-LMLPHP

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

Selenium常见元素操作,学完就能上手-LMLPHP

03-08 20:30