Java+Selenium3方法篇1-从代码角度去解释启动firefox的过程

2024-06-11 12:38

本文主要是介绍Java+Selenium3方法篇1-从代码角度去解释启动firefox的过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       通过前面文章,我们知道如何去查看Selenium相关接口或者方法。一般,我们看到更多的是接口,在查看源码的时候,你可以看着这个接口的备注备份,它会告诉你,这个接口或者方法的作用,有哪些参数,参数类型是什么。为了更好去描述和理解这个过程,我们举例,通过查找源码的方式去理解Selnium启动firefox的过程。

System.setProperty("webdriver.gecko.driver", ".\\Tools\\geckodriver.exe");
       按下Ctrl+鼠标悬停在setProperty上方,点击鼠标左键,可以看到java中setProperty的源码。自己去阅读下代码中关于setProperty的介绍。其实就是设置指定键对值的系统属性。上面webdriver.gecko.driver就是键,.\\Tools\\geckodriver.exe就是值。这样就把geckodriver设置成为系统的全局变量!这个时候driver就相当于一个静态变量,存放在内存里,直到driver关闭。
       所谓的 system porperty,system 指的是 JRE (runtime)system,不是指 OS。
设置指定键指示的系统属性,可以利用系统属性来加载多个驱动。所以,上面这行代码,就是通过键和值指定firefox 的驱动位置。

WebDriver driver = new FirefoxDriver();
       点击查看WebDriver发现是一个接口,它的备注这样写的:WebDriver是一个测试的主要接口,它展现了一个理想化的web浏览器,它主要包括三个目录。1)控制浏览器本身 2)查找和选择元素 3)调试程序,比如异常处理。
       driver这里是一个实例对象,学习了Java中类和对象,就应该不难理解。
       new 是一个关键字,Java中通过new这个关键字,可以在内存中开辟一块空间,用来加载变量。
FirefoxDriver(),是WebDriver这个接口在firefox上的一个实现具体类。FirefoxDriver这个类里面,还包含一些firefox浏览器的一些选项设置。这行代码的意思用一句话来讲:初始化一个firefox类型的driver实例对象。这里除了firefox,还有IE,Safari,chrome等对应的driver启动方法,你可以查看*\Selenium-Java-src\org\openqa\selenium,可以找到这些接口文件。

driver.manage().window().maximize();
      这里driver,就是指上面我们初始化的firefox的实例对象,就是类似一个真实浏览器。manage是Options这个接口的一个方法,window().maximize(),window也是一个接口,这个接口下,有maximize这个方法,也就是最大化浏览器,window下也有全屏,设置窗口大小的方法。

driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
        manage上面提到是一个方法,直接来看timeouts,timeouts是接口Timeouts的一个实例对象,它的左右是针对webdriver实例管理超时的一个接口。implicitlyWait是一个隐式等待,当在一定时间内,如果还没有找到页面元素,就报超时。参数有两个,第一个是8,第二个是时间单位,这里选择秒,所以这里是8秒后超时。

driver.get("https://www.baidu.com");
       这里的get方法的作用是,在当前浏览器窗口,加载一个新的web页面,是通过http get发生请求完成的。参数类型是String,一般是url。get方法就是打开一个网页的作用。

driver.quit();
      退出有quit和close两种,这里quit表示退出当前浏览器,关闭这个浏览器有关联的所有窗口。

解释过程就到这里,下面文章开始介绍Selenium中的常见方法或者接口的具体使用例子。



这篇关于Java+Selenium3方法篇1-从代码角度去解释启动firefox的过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1051197

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Java中的.close()举例详解

《Java中的.close()举例详解》.close()方法只适用于通过window.open()打开的弹出窗口,对于浏览器的主窗口,如果没有得到用户允许是不能关闭的,:本文主要介绍Java中的.... 目录当你遇到以下三种情况时,一定要记得使用 .close():用法作用举例如何判断代码中的 input