Selenium--浏览器常规操作

本文详细介绍Selenium WebDriver的各种操作技巧,包括浏览器控制、元素交互、截图、弹窗处理、下拉框选择、多窗口切换及元素等待策略。同时,介绍了如何使用Actions类模拟鼠标键盘操作,适用于自动化测试和Web爬虫开发。

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

浏览器常规操作:

  1. 打开网页:
    // 打开某个网页,http不可少
    driver.get(“http://www.baidu.com”);
    // 打开某个网页,等同于上面的get方法
    driver.navigate().to(“http://www.google.com”);
  2. 浏览器后退
    driver.navigate().back();
  3. 浏览器前进
    driver.navigate().forward();
  4. 浏览器刷新
  5. driver.navigate().refresh();
  6. 浏览器最大化
    driver.manage().window().maximize();
  7. 设置浏览器大小
    Dimension dimension = new Dimension(900, 800);
    driver.manage().window().setSize(dimension);
  8. 获取当前页面URL
    driver.getCurrentUrl();
  9. 获取当前页面Title
    driver.getTitle();

元素操作:

  1. 点击:click()
  2. 文本框输入文本:sendkeys()
  3. 清空文本框:clear()
  4. 获取文本:getText()
  5. 获取title:getTitle()
  6. 判断元素是否展示:isDisplayed()
  7. 判断选择框是否选取:isSelected()
  8. 判断输入框是否为可输入:isEnabled()
  9. 截图
代码例子:
File screenShotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
	  	try {
			FileUtils.copyFile(screenShotFile, new File("D:/a.jpg"));
		} catch (IOException e) {
			e.printStackTrace();
		}
  1. Alert的处理(弹窗)
Alert alert = driver.switchTo().alert();
alert.accept();
  1. Confirm的处理
Alert alert = driver.switchTo().alert();
//确定按钮
alert.accept();
//取消按钮
alert.dismiss();
  1. Prompt的处理
Alert alert = driver.switchTo().alert();
alert.sendKeys("输入");
alert.accept();
  1. iFrame的处理
	  	driver.switchTo().frame("nameOrId");
	  	driver.findElement(By.id("id")).sendKeys("输入");
	  	//控制权恢复默认
	  	driver.switchTo().defaultContent();
  1. 下拉框的处理
    三种处理方式:

    1. selectByIndex() 根据索引来选取,从0开始
    2. selectByValue() 根据属性value的属性值来选取
    3. selectByVisibleText()根据标签之间的Text值,也就是页面显示的
  2. 多窗口的处理

String handle = driver.getWindowHandle();
	  	for (String handles : driver.getWindowHandles()) {
			if (handles.equals(handle)) {
				continue;
			}
			driver.switchTo().window(handles);
		}
  1. 元素等待的处理
  • 线程等待:Thread.sleep(xxxx)
  • 全局等待:driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS)
  • 显示等待:new WebDriverWait(driver, 30).until(ExpectedConditions.presenceOfElementLocated(By))
  1. Actions类
    平时我们在做自动化过程中可能需要模拟鼠标、键盘等的一些行为,例如鼠标单击,双击,右键,而且很多web 应用可能存在快捷组合键等等。那么可以用WebDriver中提供了Actions类来处理这类需求,更复杂的键盘鼠标处理我们可以通过Java提供的Robot类解决。
Actions builder = new Actions(webdriver1);
//右键
builder.contextClick().perform();
//双击
builder.doubleClick().perform();
//停留在元素上
builder.moveToElement(element).perform();
//拖动到固定坐标
//builder.dragAndDropBy(element, xOffset, yOffset).perform();
//把元素拖动另一个元素上
builder.clickAndHold(i).moveToElement(one element).release(other element).perform();
//下拉框多选
builder.keyDown(Keys.SHIFT).click(elements.get(0)).click(elements.get(2)).build().perform();
  1. Robot类
  • 按住某个按键
    keyPress(KeyEvent.VK_S) //S键
  • 松开某个按键
    keyRelease()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值