selenium-java入门

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包包括:


依赖jar包列表(全量)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容