package com.test1;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Wait;
import org.openqa.selenium.support.ui.WebDriverWait;
import javax.script.ScriptContext;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
/**
* @Classname Test1
* @Description TODO
* @Date 2018/12/19 15:26
* @Created by Administrator
*/
public class SeleniumTest1 {
public static void main(String[] args) throws Exception {
///////////如下为对百度网页进行一次搜索的过程;///////////
//webdriver.chrome.driver:固定的,指谷歌驱动,D:/chrome/chromedriver.exe:驱动的位置
System.setProperty("webdriver.chrome.driver", "D:/wokspace_anne_springcloud/80/chromedriver.exe");
WebDriver driver = new ChromeDriver();
//页面加载超时时间设置为 10s
// driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();//窗口最大化
Thread.sleep(2000);
luping();
// Thread.sleep(4000);
try {
//clickQuery(driver, "kw", "id", "头条");
// driver.get("https://blog.csdn.net/u014608930/article/details/80414900");
// System.out.println(((JavascriptExecutor)driver).executeScript("document.body.clientHeight"));
driver.get("http://www.baidu.com/");
driver.findElement(By.id("kw")).sendKeys("头条");
//driver.findElement(By.id("")).click();
//获取百度出来的第一个超链接
String url = driver.findElement(By.xpath("//*[@id=\"1\"]/h3/a")).getAttribute("href");
//把超链接放在url地址栏中进行访问
driver.get(url);
//移动到页面最底部 document.body.scrollHeight
for (int j = 1; j < 10; j++) {
Thread.sleep(2000);
((JavascriptExecutor) driver).executeScript("window.scrollBy(0, " + j * 100 + ")");
}
System.out.println("退出循环了");
// //刷新页面
// driver.navigate().refresh();
driver.quit();//退出
stop();
}catch (Exception e){
driver.quit();//退出
stop();
e.printStackTrace();
}
}
private static void luping() {
try {
// 创建一个机器人
Robot robot = new Robot();
//打开录屏
robot.keyPress(KeyEvent.VK_WINDOWS);
robot.keyPress(KeyEvent.VK_G);
robot.keyRelease(KeyEvent.VK_WINDOWS);
robot.keyRelease(KeyEvent.VK_G);
//开始录屏
robot.keyPress(KeyEvent.VK_WINDOWS);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_WINDOWS);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_R);
//Thread.sleep(15000);
//stop();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void stop() {
try {
//结束录屏
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_WINDOWS);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_WINDOWS);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_R);
} catch (Exception e) {
e.printStackTrace();
}
}
/***
* 根据类型获取值模拟搜索操作
* 显式等待, 针对某个元素等待(等元素加载起来后才触发)
* WebDriverWait类是由WebDirver提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。具体格式如下:
* WebDriverWait(driver, 10, 1)
* driver: 浏览器驱动。 10: 最长超时时间, 默认以秒为单位。 1: 检测的的间隔(步长) 时间, 默认为 0.5s。
* @param driver
* @param key
* @param type
* @param value
*/
private static void clickQuery(WebDriver driver, String key, String type, String value) {
//设置超时时间(防止由于网速慢导致的页面加载慢,引起的页面元素还没有初始化就去获取页面元素引起的错误)
WebDriverWait wait = new WebDriverWait(driver, 10, 1);
//等待页面初始化完再进行搜索
wait.until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver text) {
if (type.equals("id")) {
return text.findElement(By.id(key));
}
if (type.equals("class")) {
return text.findElement(By.className(key));
}
return null;
}
}).sendKeys(value);
}
private static void clickTitle(WebDriver driver, String key, String type) {
//设置超时时间(防止由于网速慢导致的页面加载慢,引起的页面元素还没有初始化就去获取页面元素引起的错误)
WebDriverWait wait = new WebDriverWait(driver, 10, 1);
//等待页面初始化完再进行搜索
wait.until(new ExpectedCondition<WebElement>() {
@Override
public WebElement apply(WebDriver text) {
if (type.equals("id")) {
return text.findElement(By.id(key));
}
if (type.equals("class")) {
return text.findElement(By.className(key));
}
return null;
}
});
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
java自动录频自动操作浏览器小demo
共23个文件
xml:10个
class:6个
java:4个
需积分: 31 14 下载量 22 浏览量
2018-12-25
17:18:59
上传
评论 1
收藏 26KB RAR 举报
温馨提示
使用selenium自动操作浏览器并自动把过程录制成视频的一个小demo。导入直接main方法执行即可
资源推荐
资源详情
资源评论
收起资源包目录
MavenTest.rar (23个子文件)
MavenTest
pom.xml 2KB
target
classes
com
test1
SeleniumTest1$2.class 1KB
SeleniumTest1.class 4KB
SeleniumTest1$1.class 1KB
jepgToAvi
GuiCamera.class 3KB
JpgToAvi.class 3KB
GuiCamera1.class 5KB
generated-sources
annotations
MavenTest.iml 495B
src
main
webapp
WEB-INF
web.xml 215B
index.jsp 52B
resourse
java
com
test1
SeleniumTest1.java 6KB
jepgToAvi
JpgToAvi.java 2KB
GuiCamera1.java 5KB
GuiCamera.java 3KB
.idea
misc.xml 640B
encodings.xml 172B
compiler.xml 530B
workspace.xml 44KB
libraries
Jim2mov.xml 280B
artifacts
MavenTest_war_exploded2.xml 320B
out
artifacts
MavenTest_war_exploded2
WEB-INF
web.xml 215B
index.jsp 52B
web
WEB-INF
web.xml 304B
共 23 条
- 1
资源评论
weixin_39513166
- 粉丝: 17
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功