Selenium的基本操作(4)(本地页面,鼠标动作,弹出框)

package com.main;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;

public class Assert3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//new Assert3().WindowSwicth();
		//new Assert3().mouseAction();
		new Assert3().alert();
		
	}
	//框架表单切换
	public void WindowSwicth() {

		System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
		
		//File file = new File("D:\\BS\\example_frame.html");

		WebDriver webdriver = new FirefoxDriver();
		
		try {
			//读取本地网页html
			webdriver.get("D:\\BS\\example_frame.html");
			
			webdriver.switchTo().frame("itcast_frame1");
			
			webdriver.switchTo().frame("itcast_frame2");
			
			webdriver.findElement(By.id("sb_form_q")).sendKeys("123");
			
			//跳到上一层框架(表单)
			webdriver.switchTo().parentFrame();
			
			//跳到最外层框架(表单)
			webdriver.switchTo().defaultContent();
			
			webdriver.quit();
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			webdriver.quit();
		}

	}
	public void mouseAction(){
		
		System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");

		WebDriver webdriver = new FirefoxDriver();
		
		
		try {
			webdriver.get("https://www.baidu.com");
			
			Thread.sleep(2000);
			
			Actions actions = new Actions(webdriver);
			
			WebElement findElement = webdriver.findElement(By.cssSelector("#lg>a>div"));
			
			//加入perform才算执行
			actions.click(findElement).perform();
			
			Thread.sleep(2000);
			
			Set<String> windowHandles = webdriver.getWindowHandles();
			
			ArrayList<String> arrayList = new ArrayList<String>(windowHandles);
			
			webdriver.switchTo().window(arrayList.get(1));
			
			System.out.println(arrayList.get(1));
			
			//WebElement findElement2 = webdriver.findElement(By.id("su"));
			//右击操作
			//actions.contextClick(findElement2).perform();
					
			WebElement findElement3 = webdriver.findElement(By.xpath("//*[@id='con-at']/div/div/div/div[4]/div[1]/div[1]/a/img"));
			//鼠标悬停
			actions.moveToElement(findElement3).perform();
			
			Thread.sleep(2000);
			
			/*webdriver.close();*/
			//在本浏览器窗口再进入京东
			webdriver.get("https://www.jd.com/?cu=true&utm_source=baidu-pinzhuan&utm_medium=cpc&utm_campaign=t_288551095_baidupinzhuan&utm_term=0f3d30c8dba7459bb52f2eb5eba8ac7d_0_f27a1e5f961f4799ab827c0425d42b91");
			
			List<WebElement> findElements = webdriver.findElements(By.className("cate_menu_item"));
			
			System.out.println(findElements.size());
			//遍历去移动悬停一波
			for (WebElement webElement : findElements) {
				
				actions.moveToElement(webElement).perform();
				
				System.out.println(webElement.getText());
				
				Thread.sleep(2000);
			}
			
			Thread.sleep(2000);
			
			webdriver.quit();
			
		} catch (Exception e) {
		
			e.printStackTrace();
			
			webdriver.quit();
		}
		
		
	}
	//弹出窗操作
	public void alert(){
		
		System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");

		WebDriver webdriver = new FirefoxDriver();
		
		Actions actions = new Actions(webdriver);
		
		try {
			
			webdriver.get("https://www.baidu.com");
			
			WebElement findElement = webdriver.findElement(By.linkText("设置"));
			
			Thread.sleep(2000);
			
			actions.moveToElement(findElement).perform();
			
			webdriver.findElement(By.className("setpref")).click();
			
			Thread.sleep(2000);
			
			webdriver.findElement(By.cssSelector("[for='sh_1']")).click();
			
			webdriver.findElement(By.className("prefpanelgo")).click();
			
			Thread.sleep(2000);
			
			webdriver.switchTo().alert().accept();
			
			Thread.sleep(2000);
			
			webdriver.findElement(By.id("kw")).sendKeys("123");
			
			Thread.sleep(2000);
			
			webdriver.quit();
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			webdriver.quit();
		}
		
		
		
	}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值