Selenium-java学习笔记

本文档详细介绍了使用Selenium与Java进行UI自动化测试的基本操作,包括导入库、定义浏览器、打开网页、查找和操作元素、等待策略、鼠标键盘交互、处理弹框、cookie管理和JavaScript执行。此外,还提到了版本匹配问题和截图功能。

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

1.项目中提前导入selenium jar包

操作
导入
import org.openqa.selenium;
import org.openqa.selenium.WebDriver;
import org.openqa.swlenium.Chrom.ChromeDriver;

  • 定义浏览器
    Webdriver driver = new ChromeDriver();

  • 打开网页
    driver.get();

  • 获取标题
    String title = driver.getTitle();

  • 最大化窗口
    driver.manage().window().maximize();

  • 设置窗口大小
    driver.manage().window().setSize(new Dimension());

*查找元素

driver.findElement(By.id(""));
.sendKeys("");

  • 显示等待
    Thread.sleep();

必须放在try catch等可以获取错误的地方 或

public  void test1() throws XXXexception{
    
}

try{
Thread.sleep();
}catch(Exception e){

};

  • 隐式等待
    driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

  • selenium自带等待

WebDriverWait wait= new WebDriverWait(driver, 10);
WebElement wl = wait.until(new ExpectedCondition<WebElement>() {
    @Override
    public WebElement apply(WebDriver d) {
        return d.findElement(By.id("avc"));
    }
});
WebDriverWait wait = new WebDriverWait(drvier, 10);
wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.id("fe")));
driver.manage().timeouts().pageLoadTImeout(5,TimeUint.SECONDS);
页面加载超时时间5s
  • 前进/后退/刷新
    driver.navigate().forward();
    driver.navigate().backward();
    driver.navigate().refresh();

  • 具体操作
    element.send_keys();
    element.click();
    element.clear();
    element.submit();

  • 获取信息
    element.getSize()获取元素尺寸
    element.getText()获取文本
    element.getAttribute(name);获取属性
    element.isDisplayed(); true/false

  • 鼠标操作

import org.openwa.selenium.interactions.Actions;
Actions action = new Actions(driver);
action.contextClick(element).perform();

contextClick() 右击
clickAndHold(source,target) 点击并控制:悬停
doubleClick() 双击
dragAndDrop() 拖动
release() 释放鼠标
perform() 执行所有Actions中储存的行为:执行操作

  • 键盘操作
import org.openqa.selenium.Keys;
element.send_keys(Keys.CONTROL,"a"); ctrl+a
  • 断言常用
    getTitle();
    getCurrentUrl();
    getText();

  • 表单切换iframe
    driver.switchTo().frame(element);
    切换默认:
    driver.switchTo().defaultContent();

  • 窗口切换

String search_handler = driver.getWindowHandle()获取当前窗口hanlder
Set(String) handlers = driver.getWindowHandles();获取所有窗口hanlder
driver.switchTo().window(hanlder)
  • 下拉框
import org.openqa.selenium.support.ui.Select;
WebElement el = 下拉框的定位元素
Select sel = new Select(el);
sel.selectByValue();

  • 警告框处理
    在 WebDriver中处理JavaScript所生成的alert、confirm以及prompt十分简单,具体做法是使用switch_to_alert()方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/sendKeys等方法进行操作。

accept/dismiss/sendKeys(text)/keysToSend/getText
driver.switchTo().alert().accept

*cookie操作

getCookies 获取所有cookies信息
getCokkiesNamed(String name) 返回字典的key为“name”的cookie信息
addCookie(cookie_dict) 添加cookie,“cookie_dict"指字典对象,必须有key和value
deleteCookieNamed(String name) 删除cookie信息
“name”是要删除的 cookie的名称; “optionsString” 是该Cookie的选项,目前支持的选项包括“路径” , “域” 。
deleteAllCookies() 删除所有 cookie 信息。

import org.openqa.selenium.Cookie;

Cookie c1 = new Cookie("name","key_aaaaa");
driver.manage().addCookie(c1);
//获取cookie
Set<Cookie> coo = deriver.manage().getCookies();
//删除所有
driver.manage().deleteAllCookies();


  • js脚本
((JavascriptExecutor)driver).executeScript("window.scrollTo(100,450);");
  • 截图
import org.openqa.selenium.TakesScreenShot;
import org.openqa.selenium.OutputType;
import java.io.File;

File srcFile = ((TakesScreenshot)driver).getScreenShotAs(outputType.FILE);

备注错误

出现版本错误时,添加

System.setProperty("webdriver.chrome.driver","D:\\SeleniumDriver\\chromedriver.exe");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值