java实现 selenium 流程自动化
需要工具:下载解压 chromedriver.exe 放到D盘或其他盘符
chrome浏览器要安装插件 selenium-ide这个插件 方便你录制浏览器动作 并且支持生成 java或其他语言代码。
java 具体实现代码
1.gradle或maven中引入以下jar包 此处以gradle为例
compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version: '3.141.59'
2.代码
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class BJSocialinsurance {
private WebDriver driver;
// 初始化
public void setUp(){
System.out.println("setUp");
ChromeOptions options = new ChromeOptions();
options.addArguments("--test-type");
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("lang", "zh_CN.UTF-8");
prefs.put("prompt_for_download", true);
//options.addArguments("--start-maximized");
//prefs.put("download.default_directory", "/pathToDownloadFolder");
prefs.put("download.prompt_for_download", true);
prefs.put("download.directory_upgrade", true);
prefs.put("safebrowsing.enabled", true);
options.setExperimentalOption("prefs", prefs);
driver = new ChromeDriver(options);
}
// 模拟登录
public void login() throws InterruptedException {
// 打开某个网站
driver.get("https://www.***.com");
// 放大窗口
driver.manage().window().setSize(new Dimension(1920, 1080));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请先登录,登录完按回车执行后续任务 :)");
try {
br.readLine();
} catch (IOException ex) {
}
Thread.sleep(2000);
// 获取页面中的iframe 以便于定位到页面元素
driver.switchTo().frame("center");
driver.switchTo().frame("leftFrame");
Thread.sleep(2000);
// 点击页面中的某个元素
driver.findElement(By.id("link000")).click();
}
// 执行某些动作
private void apply(){
// 例如点击某个输入框
driver.findElement(By.id("dataNormalAdd.idCard")).click();
// 清除输入框中的内容
driver.findElement(By.id("dataNormalAdd.idCard")).clear();
// 粘贴动作
driver.findElement(By.id("dataNormalAdd.idCard")).sendKeys(person.getCardId());
// 操作页面复选框
Select personType = new Select(driver.findElement(By.id("personType")));
// 给复选框赋值
personType.selectByIndex(0);
}
// 关闭浏览器
public void tearDown(){
driver.quit();
}
// 开始执行动作
public static void main(String[] args) throws AWTException, InterruptedException {
// 初始化
setUp();
// 登录
login();
// 执行操作
apply();
// 关闭
tearDown();
}
}