2020-11-02

2020-11-02  本文已影响0人  小胖5920

一、创建项目
1、首先使用eclipse创建一个Java项目
2、导入maven工具包
主要需要selenium包

           <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.7</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.7</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.20</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.5</version>
        </dependency>

maven地址:https://mvnrepository.com/
3、创建对应的方法
例如,创建连接浏览器方法、获取元素方法

public static  void conn() throws Exception {
  //打开浏览器的按照地址
        System.setProperty("webdriver.chrome.driver", "/Users/edz/eclipse-workspace/xykweb/bin/chromedriver");
//打开浏览器
        WebDriver webDriver = new ChromeDriver();
//输入百度地址
        webDriver.get("http://www.baidu.com");
//等待1秒
        Thread.sleep(10000);
//关闭浏览器
        webDriver.quit();
    }

4、常用获取浏览器的定位
1.xpath定位

webDriver.findElement(By.xpath("/html/body/div[5]/div[1]/button[2]"))
webDriver.findElement(By.xpath("//*[@id=\"username\"]"))

2.CSS定位

webDriver.findElement(By.cssSelector(".class"))

3.id定位

webDriver.findElement(By.id("id"))

4.name定位

webDriver.findElement(By.name("name"))

5.class定位

webDriver.findElement(By.className("classname"))

使用以上方法既可以创建一个简单的自动化项目

二、获取元素失败可能因素
1、元素属性为隐藏
处理方法使用js脚本处理隐藏元素

//调用js
JavascriptExecutor removeAttribute = (JavascriptExecutor) webDriver;
//告诉js需要清除那个元素
removeAttribute.executeScript("var setDate
=document.getElementById(\"birthday\").removeAttribute('readonly');");
//清除隐藏元素属性
webDriver.findElement(By.id("birthday")).clear();

2、元素在iframe标签
将webDriver切换到iframe标签

//找到需要切换frame页面信息
WebElement frame = webDriver.findElement(By.xpath("//[@id=\"top_tabs_box\"]/div/div[2]/iframe"));
//切换到这个页面上
webDriver.switchTo().frame(frame);
//切换回frame
webDriver.switchTo().defaultContent();

3、页面元素还未加载完全
增加等待时间

//等待1秒后加载数据
Thread.sleep(1000)
上一篇下一篇

猜你喜欢

热点阅读