selenium(java)遇到的问题

本文分享了自动化测试中遇到的问题及解决方法,包括使用XPath定位元素、处理iframe、弹窗操作、多窗口切换、IE浏览器文件下载及Edge浏览器驱动版本匹配等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做自动化测试过程中,多多少少会遇到了一些问题,以此记录一下:

1、对于input、button等,没有name、id时,通过xpath获取,F12找到该标签,右键复制xpath

2、对于页面有时iframe,需要的标签在iframe里,需要先进入iframe,才能获取该标签

    driver.switchTo().frame(driver.findElement(By.xpath("自己iframe的路径")));

    退出时iframe时:

   driver.switchTo().defaultContent();

3、出现弹出框时,点击弹出框的确定按钮:

driver.switchTo().alert().accept();

   点击取消按钮:

driver.switchTo().alert().dissmiss();

4、打开一个新的页面时,需要切换主页面到新打开的页面

protected void openNewWindow(String windowHandle) throws Exception {
    Set<String> handles = driver.getWindowHandles();
	for (String handle : handles) {
		if (!windowHandle.equals(handle)) {
			driver.switchTo().window(handle);
		}
	}
}

 如果打开三个及以上页面时,有可能切换页面切换不到最新打开的(不一定会出现),用以下代码可以确保是定位到最新打开的页面

protected void openNewWindows() throws Exception {
	Set<String> handles = driver.getWindowHandles();
	List<String> it = new ArrayList<String>(handles);
		
	if (it.size() > 0) {
		driver.switchTo().window(it.get(it.size()-1));
	}
}

5、ie下载文件时弹出ie的下载框,

private static void downLoad() throws Exception {
    Thread.sleep(2000);
    try {
        Robot robot = null;

	    robot = new Robot();
	
	    robot.setAutoDelay(1000);
	
	    robot.keyPress(KeyEvent.VK_ALT);
	    robot.keyPress(KeyEvent.VK_N);
	    robot.keyRelease(KeyEvent.VK_N);
	    robot.keyRelease(KeyEvent.VK_ALT);
	
	    Thread.sleep(2000);
	    robot.keyPress(KeyEvent.VK_TAB);
	    robot.keyRelease(KeyEvent.VK_TAB);
	
	    Thread.sleep(2000);
	    robot.keyPress(KeyEvent.VK_DOWN);
	    robot.keyRelease(KeyEvent.VK_DOWN);
	
	    Thread.sleep(2000);
	    robot.keyPress(KeyEvent.VK_DOWN);
	    robot.keyRelease(KeyEvent.VK_DOWN);
	        
	    Thread.sleep(2000);
	    robot.keyPress(KeyEvent.VK_DOWN);
	    robot.keyRelease(KeyEvent.VK_DOWN);
		
		Thread.sleep(2000);
		robot.keyPress(KeyEvent.VK_ENTER);
		robot.keyRelease(KeyEvent.VK_ENTER);
		
    } catch (AWTException e) {
		e.printStackTrace();
       }
	
}

6、用edge进行自动化测试时,报错版本的问题,后来发现是因为驱动的原因,需要在官网下载与自己电脑edge相同版本的驱动才可以

     edge驱动下载链接:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值