概述
摘要:在Selenium的使用过程中,驱动浏览器始终是最为重要的一环,因此,从此处入手更容易理解Selenium的架构和原理。此篇文章将以Firefox浏览器为例,浅析Selenium的驱动模式,以期裨益。
一、入门
Selenium启动firefox主要有两种方式:
1.启动本机Firefox的WebDriver,执行默认配置;
2.启动远程WebDriver,进一步操控Firefox动作,此为Selenium Grid的启动方式;
本质上来讲,两种启动方式并无太大区别,本机亦可被视为远程的一种特殊情况。为了简便,本文便以第一种启动方式为例,探究Selenium的启动机制。
在利用Selenium搭建自动化测试框架的过程中,通常采用下面这种形式:
WebDriver driver = new FirefoxDriver();
这是最简便的一种方式,所有的设置都来自于Selenium默认的配置。当然,如果你的Firefox不是安装在默认路径下,你可能需要下面这样的设置:
System.setProperty("webdriver.firefox.bin","E:/Program Files/Mozilla Firefox/firefox.exe");//指定firefox的安装路径
WebDriver driver = new FirefoxDriver();
如果你在启动脚本的过程中发现firefox总是打开欢迎或者向导等页面,你也可能需要进行下面的设置:
FirefoxProfile profiles = new FirefoxProfile();
profiles.setPreference("browser.startup.homepage", "about:blank");
profiles.setPreference("startup.homepage_welcome_url", "about:blank");
profiles.setPreference("startup.homepage_welcome_url.additional", "about:blank");
WebDriver driver = new FirefoxDriver(profiles);
如果你还有其他的问题和需要,可以点击这里
二、初窥
FirefoxDriver的结构
FirefoxDriver具有九个构造函数,为了简单,我们从最底层的构造函数开始:
public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities desiredCapabilities, Capabilities requiredCapabilities) { this(createCommandExecutor(populateProfile(profile, desiredCapabilities), binary, profile), populateProfile(profile, desiredCapabilities), requiredCapabilities); this.binary = binary; }
四个参数,
FirefoxBinary binary firefox的二进制文件。FirefoxBinary类通过调用Executable类去查找Windows/Mac/UNIX系统中的 firefox二进制文件。点击查看细节
FirefoxProfile profile firefox的配置文件。
Capabilities desiredCapabilities 用来描述用户请求Session的特征。
Capabilities requiredCapabilities 与上一个类似,但是这部分Selenium并未赋予实际功能,一般为空。
两个重要函数,
createCommandExecutor(populateProfile(profile, desiredCapabilities), binary, profile) 创建一个与server或者本地建立http连接并接受command的executor,这里默认连接本地。
populateProfile(profile, desiredCapabilities) 从desiredCapabilities中加载关于浏览器设置的信息到profile。
三、发展
1.加载日志和profile,这个工作由init(desiredCapabilities, requiredCapabilities )函数完成;
2.startClient()操作,这个函数默认没有任何操作,需要在子类中具体实现,然而FirefoxDriver类并没有重写这个函数
3.startSession(desiredCapabilities, requiredCapabilities),启动session,程序的最终目标,经过前面的各种设置之后启动符合条件的session。
四、尾声
最后
以上就是安静绿茶为你收集整理的阅读Selenium源码——从FirefoxDriver类实现说起一、入门三、发展四、尾声的全部内容,希望文章能够帮你解决阅读Selenium源码——从FirefoxDriver类实现说起一、入门三、发展四、尾声所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复