chromewebdriver下载地址:http://chromedriver.storage.googleapis.com/index.html
edgewebdriver下载地址:https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/
firefoxwebdriver下载地址:https://github.com/mozilla/geckodriver/releases
1、新建maven新项目
在pom.xml中添加依赖:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.3.0</version>
</dependency>
</dependencies>
2、创建app类
package com.exaple.seleniumdemo.initapp;
import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class SeleniumApp {
public static void main(String[] args) {
//System.setProperty("webdriver.edge.driver", "D:/backup/msedgedriver.exe");
//WebDriver driver = new EdgeDriver();
//System.setProperty("webdriver.edge.driver", "D:/backup/msedgedriver.exe");"C:/Program Files/Google/Chrome/Application\chrome.exe"
System.setProperty("webdriver.chrome.driver", "D:/backup/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();//
driver.get("http://localhost:8090");
WebElement element = null; //div[contains(text(), "' + text + '")]
element = getElementByXpathAndTxt(driver, "//span[@class='ant-menu-title-content']", "页面1");
element.click();//点击菜单
element = getElementByXpathAndTxt(driver, "//div[@class='ant-tabs-tab-btn']", "首页");
element.click();//点击标签页
element = getElementById(driver, "basic_username");
element.sendKeys("myname");//在输入框中输入数据
//element = getElementByXpathAndTxt(driver, "//lable[contains(@class, 'ant-checkbox-wrapper')]", "记住我");
//xpath('//div[contains(@class,"a")]')
element = getElementByXpathAndTxt(driver, "//input[@id='basic_remember']/../../span", "记住我");
element.click();//点击复选框
element = getElementById(driver, "basic_nowTime");
element.click();//点击日历输入框
element = getElementByXpathAndTxt(driver, "//a[@class='ant-picker-now-btn']", "此刻");
element.click();//选择日历对话框中的链接
element = getElementByXpath(driver, "//span[@class='ant-select-selection-item']");
element.click();//点击下拉框
element = getElementByXpathAndTxt(driver, "//div[@class='ant-select-item-option-content']", "yiminghe");
element.click();//选择下拉框中的项
element = getElementByXpath(driver, "//*[contains(text(), '提 交')]");
element.click();//点击按钮
waitMoment(3000);
System.out.println("----------------------" + element);
driver.close();
driver.quit();
}
private static void waitMoment(int time) {
try {
TimeUnit.MILLISECONDS.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static WebElement getElementByXpath(WebDriver driver, String xpathString) {
WebElement element = null;
for (int times = 0; times < 20;times++) {
try {
element = driver.findElement(By.xpath(xpathString));
if (element != null) {
break;
} else {
waitMoment(100);
}
} catch (Exception ex) {
ex.printStackTrace();
waitMoment(100);
}
}
return element;
}
private static WebElement getElementByXpathAndTxt(WebDriver driver, String xpathString, String text) {
WebElement element = null;
for (int times = 0; times < 20;times++) {
try {
List<WebElement> elements = driver.findElements(By.xpath(xpathString));
if (elements != null && elements.size() > 0) {
for (WebElement webElement : elements) {
if (webElement.getText().indexOf(text) > -1) {
element = webElement;
times = 21;
break;
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
waitMoment(100);
}
}
return element;
}
private static WebElement getElementById(WebDriver driver, String idString) {
WebElement element = null;
for (int times = 0; times < 20;times++) {
try {
element = driver.findElement(By.id(idString));
if (element != null) {
break;
} else {
waitMoment(100);
}
} catch (Exception ex) {
ex.printStackTrace();
waitMoment(100);
}
}
return element;
}
}
3、注意事项
如果打开chrome浏览器后不能操作浏览器,可能有两个原因:
1、是chromedriver的版本和chrome浏览器本身的版本不匹配(这页可能导致不能通过driver启动chrome浏览器);
2、可能运行环境缺少依赖jar包,maven完整依赖的jar包包括: