首页 > 编程语言 >java+Selenium(一)八种元素获取方式

java+Selenium(一)八种元素获取方式

时间:2022-12-15 16:13:20浏览次数:113  
标签:java Selenium driver System 八种 element 获取 findElement 选择器

官方文档:https://www.selenium.dev/documentation chromedriver下载地址:注意:需要下载与浏览器匹配版本的 http://chromedriver.storage.googleapis.com/index.html http://npm.taobao.org/mirrors/chromedriver/

代码示例:
     public static void main(String[] args) throws InterruptedException {
        //获取项目路径
        String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();
        // 设置系统标识,因为 chromedriver.exe 存放在 resources\plugins\目录下
        System.setProperty("webdrive.chrom.drive", path+"plugins\\chromedriver.exe");
        //获取Chrome 浏览器的驱动
        WebDriver driver = new ChromeDriver();
//        打开一个网址
        driver.get("https://wwww.baidu.com");
//        八种获取元素的方法id,name,className,tagName,linkText,partialLinkText,cssSelector,xpath
        WebElement element;
//        ********************【ID 选择器1】********************************
        element = driver.findElement(By.id("kw"));   // 根据属性Id获取 百度搜索框
        element.sendKeys("selenium"); // 搜索框中填充搜索内容
//        ********************【Name 选择器2】******************************
        driver.findElement(By.name("wd")).sendKeys("3355");  //根据属性name获取

//        ********************【className 选择器3】*************************
        //根据属性className获取【百度一下】按钮,class之间不能有空格,但可以只用部分class
        element = driver.findElement(By.className("s_btn"));
        element.submit();

//        ********************【linkText 选择器4】****************************
        element = driver.findElement(By.linkText(""));  //根据linkText获取
        System.out.println(element.getText());
//        ********************【partialLinkText 选择器5】**********************
        element = driver.findElement(By.partialLinkText(""));  // 根据部分linkText获取
        System.out.println(element.getText());
//        ********************【cssSelector 选择器6】***************************
        element = driver.findElement(By.cssSelector("")); //根据css选择器获取
        System.out.println(element.getText());
//        ********************【xpath 选择器7】*********************************
        element = driver.findElement(By.xpath(""));   // 根据xpath 获取
        System.out.println(element.getText());
//        ********************【tagName 选择器8】*******************************
        element = driver.findElement(By.tagName("")); // 根据tagName获取
        System.out.println(element.getText());

//        driver.findElement(By.id("su")).submit();//提交搜索【百度一下】按钮的id 为 su

        Thread.sleep(5*1000);//为了看效果,5秒中后关闭
        // close 只是关闭窗口,quit 关闭窗口并关闭进程
//        driver.close();
        driver.quit();
    }
Selenium 提供了练级打怪的场:https://bonigarcia.dev/selenium-webdriver-java/index.html 赶紧开始自己的野蛮发育吧


【啰嗦一下】:

现在浏览器多数会自动更新,就会出现之前还运行正常的代码,后期提示版本不支持的情况; 这种情况 Selenium 也提供了支持: WebDriverManager是一个开源的Java库,它以完全自动化的方式对Selenium WebDriver所需的驱动程序进行下载、设置和维护 官方秘籍:https://bonigarcia.dev/webdrivermanager/ 类 API:https://www.selenium.dev/selenium/docs/api/java/index.html?overview-summary.html

 

标签:java,Selenium,driver,System,八种,element,获取,findElement,选择器
From: https://www.cnblogs.com/zhey/p/16982991.html

相关文章

  • Java数组(3)三种初始化及内存分析
           ......
  • java idea spring mvc 入门 最起码 我8080跑起来了
    IDEA建立SpringMVCHelloWorld详细入门教程---------------------------------------------生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自......
  • java泛型-桥方法
    虚拟机中没有泛型,只有普通的类和方法。类型擦除会将类型参数替换成相应的限定类型,如果没有限定类型则替换为Object。桥方法主要用来解决类型擦除和多态特性的冲突问题。......
  • [Java SE/Junit] 基于Java的单元测试框架Mockito[转载]
    Mockito是一个模拟测试框架,主要功能是在单元测试中模拟类/对象的行为。1为什么要使用Mockito?Mock可以理解为创建一个虚假的对象,或者说模拟出一个对象.在测试环境中用......
  • [Java SE/JDK]Intellij IDEA中设置JDK版本
    1IntellijIDEA修改JDK版本第1步:配置JDK环境变量装好JDK之后,要添加一个环境变量:JAVA_HOME第2步:修改Idea配置由Maven决定的版本<build><plugins><p......
  • Javascript-奖品概率算法
    constLUCKY_AIRDROP_PRIZE=[{"id":1,"prop":16.2},{"id":2,"prop":16.2},{"id":3,"prop":16.2},{"id":4,"prop":16.2},......
  • Java Socket网络编程
    1.TCP流式SocketTCP是TCP/IP体系结构中位于传输层的面向连接的协议,提供可靠的字节流传输。通信双方需要建立连接,发送端的所有数据按顺序发送,接受端按顺序接收。......
  • java泛型
    1.泛型方法/**<T>表示本方法持有一个不确定类型T,表示本方法是一个泛型方法*T返回值类型为T类型的对象*Class<T>clazz:只有通过反射才能拿到泛型T的对象,因为方......
  • java 浮点数 判断相等
    浮点数之间的等值判断,基本数据类型不能使用==进行比较,包装数据类型不能使用equals进行判断。说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指......
  • JVM的内存区域划分(面试问题:你了解java内存模型么)
    学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆、栈以及静态数据区。那么在Java语言当中,内存又是如何划分的呢?......