美文网首页
Java+selenium自动化

Java+selenium自动化

作者: 小胖5920 | 来源:发表于2020-10-26 14:25 被阅读0次

    一、创建项目
    1、首先使用eclipse创建一个Java项目
    2、导入maven工具包
    主要需要selenium包
    <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);

    相关文章

      网友评论

          本文标题:Java+selenium自动化

          本文链接:https://www.haomeiwen.com/subject/ohuamktx.html