selenium操作,只写精华,基础部分自行搜索

8种定位方式

  • ID
  • name name字段
  • className 类名字
  • cssSelector css选择器
  • tagName 类似div,span, input这种叫标签名
  • linkText a标签,标签的名字
  • partialLinkText 模糊标签名字
  • xpath
获取cookie
 driver.manage().getCookies();
添加cookie
for (Cookie cookie1 : driver.manage().getCookies()) {
                driver.manage().addCookie(cookie1);
 }

1、前端代码,自己随便写。

aaa.html

<body>
<script>
	alert("123")
</script>
<a href="https://blog.csdn.net/hnd978142833/article/details/54584456" target="_blank" class="button">点我</a>
<iframe src="./b.html" frameborder="1" width="300" height="200" id="aaa">
</iframe>
</body>

b.html


<form action="http://www.baidu.com" method="get">
	<input type="submit" id="a">
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	<div>
		<span>
			asddasasdda
		</span>
	</div>
	姓名:<input type="text"><br>
	密码:<input type="text"><br>
	<input type="submit">
		<hr>
	<hr>
	<hr>
	<p>国家
		<select name="列表名称">
			<option value="china" id="a">中国</option>
			<option value="usa" id="b">美国</option>
			<option value="rs" id="c">瑞士</option>
			<option value="yd" id="d">印度</option>
		</select>
	</p>
</form>
</body>

2、下面是基础操作,driver初始化,打开网站

-	首先要选择你要测试的浏览器,然后下载对应浏览器驱动。驱动下载自行百度。


//这里驱动路径存储在了配置文件中下面可以看到配置文件内容,测试框架用的是testng.
//关于testng的用法,可以自行百度。或者私信我
-	private static ResourceBundle bundle = ResourceBundle.getBundle("application");;
    private static WebDriver driver;

	 @Test
    public void demo() {
    //设置驱动路径
        System.setProperty(bundle.getString("driverKey"), bundle.getString("driverValue"));
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get(bundle.getString("url"));
//配置文件内容
driverKey=webdriver.chrome.driver
driverValue=C:/Program Files (x86)/Google/Chrome/Application/3.exe
url=D:/Selenium/src/main/java/com/aaa.html

3、弹窗操作

//就这么简单,没想到吧
driver.switchTo().alert().accept();
//切换回原主页面
driver.switchTo().defaultContent();

4、iframe操作

iframe是内嵌网页,先切换到内嵌网页,可以根据ID属性的值
driver.switchTo().frame("aaa");

5、窗口切换操作(重点来了,看了很多博客,少一步细节处理的话,会切换失败)

//这一步,返回所有窗口的句柄
Set<String> handles=driver.getWindowHandles();
        for(String handle:handles){
        //遍历的时候怎么保证,切换到自己想要的窗口。思路是根据窗口的title
        //想获取当前窗口title,那么一定要先获取当前窗口的操作句柄
            if(driver.switchTo().window(handle).getTitle().equals("frame,iframe,frameset之间的关系与区别_hnd978142833的博客-CSDN博客_frameset")){
                driver.findElement(By.partialLinkText("的主页")).click();
            }
        }

6、下拉框操作

 Select select=new Select(driver.findElement(By.xpath("/html/body/form/p/select")));
        //select.selectByValue("china");
        select.selectByVisibleText("印度");

7、导航栏操作


 WebDriver.Navigation navigation=driver.navigate();
                navigation.back();
                navigation.forward();
                navigation.refresh();

navigate.to(url)	跳转到指定url,和 webdriver 使用 get 方法是一样的。
navigate.refresh()	刷新当前页面。
navigate.back()	浏览器回退操作。
navigate.forward()	浏览器前进操作。

8、等待

-	硬性等待
		:Thread.sleep(1000);
-	​ 隐式等待的理解,就是我们通过代码设置一个等待时间,如果在这个等待时间内,网页加载完成后就执行下一步,否则一直等待到时间截止。

-	显示等待
		:WebDriverWait wait=new WebDriverWait(driver,5);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/form/p/select")));

9、鼠标操作

Actions action = new Actions(driver);

//a左击
action.click


// 鼠标右键点击指定的元素
action.contextClick(driver.findElement(By.id("element"))).perform();

// 鼠标双击指定的元素
action.doubleClick(driver.findElement(By.id("element"))).perform();
// 鼠标移到到指定元素上
action.moveToElement(driver.findElement(By.id("element"))).perform();

// 鼠标拖拽动作, 将 source 元素拖放到 target 元素的位置。
WebElement source = driver.findElement(By.name("element"));
WebElement target = driver.findElement(By.name("element"));
action.dragAndDrop(source,target).perform();

// 释放鼠标
action.release().perform();

10、键盘输入

WebDriver driver = new ChromeDriver();
    driver.get("https://www.baidu.com");

    // 定位到对应的元素
    WebElement input = driver.findElement(By.id("kw"));

    //输入框输入内容
    input.sendKeys("seleniumm");
    Thread.sleep(2000);

    //删除多输入的一个 m
    input.sendKeys(Keys.BACK_SPACE);
    Thread.sleep(2000);

11、执行js

JavascriptExecutor js= (JavascriptExecutor) driver;
js.executeScript("window.scrollTo(0,1500);");

12、操作滚动条和执行js代码

JavascriptExecutor js= (JavascriptExecutor) driver;
 js.executeScript("window.scrollTo(1500,1500);");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值