Selenium Webdriver支持哪些浏览器?(转)

本文深入探讨了Selenium自动化测试中不同浏览器之间的兼容性问题,包括InternetExplorer、Firefox、Chrome等主流浏览器的配置要求及常见错误解决方法。重点讲解了如何根据不同浏览器的特点进行配置,以及遇到元素定位与事件响应不兼容时的应对策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照官方文档的说法,现阶段有以下的drivers:

        ChromeDriver
        InternetExplorerDriver
        FirefoxDriver
        OperaDriver
        HtmlUnitDriver
        AndroidDriver(mobile testing)
        OperaMobileDriver(mobile testing)
        IPhoneDriver(mobile testing)
 
为什么selenium自动化case在一个浏览器运行的很好,换为另外一个浏览器则不行?一个Driver可以打开浏览器,另外一个Driver却不行?

WebDriver是通过调用native浏览器来操作的,浏览器之间的差异注定会出现一些问题。下面以InternetExplorer,Firefox,Chrome为例进行说明:
InternetExplorer:

    1.它分不同的版本,版本之间差异很大。InternetExplorerDriver支持IE6、7、8、9。操作系统支持XP、Vista、Windows 7。
    2.InternetExplorerDriver同时支持32/64bit的浏览器,这个取决于你用的是什么版本的IEDriverServer.exe。
    3.要求条件如下:

            IEDriverServer在系统环境的PATH内(selenium2.26.0+版本推荐方式)。或者设置webdriver.ie.driver系统属性。
            System.setProperty("webdriver.ie.driver", "D:\\IEDriverServer.exe");
            WebDriver driver = new InternetExplorerDriver();
            在windows vista、windows7操作系统中,如果使用IE7+的浏览器,应该保证浏览器的保护模式都处于同一状态[开启或者关闭]。如果不一致,那么报错信息类似于Caused by: org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
            不会设置吗?
            操作如下:打开浏览器->Internet选项 ->安全->启用保护模式。保证Internet、本地Intranet、受信任的站点、受限制的站点4个zone保护模式一致就OK
            为了确保能获得正确的坐标点,要把浏览器的缩放设为100%。
            设置方法:打开浏览器->页面->缩放(Z)->100%

参考http://code.google.com/p/selenium/wiki/InternetExplorerDriver

Firefox:

    1.Firefox不像InternetExplorer一样,用户可以自定义安装路径。因此使用时,需要制定firefox.exe的安装路径。
    怎么指定?

            java code: System.setProperty()
            命令行:-DpropertyName='value'

    2.系统变量的值为:webdriver.firefox.bin,以及其他的key值,详见参考页面。webdriver.firefox.bin用来指定Firefox的安装路径。如不设置,默认从%PROGRAMFILES%\Mozilla Firefox\firefox.exe加载。个人强烈建议,即使安装在默认路径也进行指定。
    3.Java代码如下:

    System.setProperty("webdriver.firefox.bin", "C://Mozila/firefox.exe");   WebDriver driver = new FirefoxDriver();  

    其中firefox的安装路径,按情况自行替换。

参考http://code.google.com/p/selenium/wiki/FirefoxDriver

Chrome:

chrome要求条件如下:

    1.Chrome应当安装在默认路径下(如果是从官方下载的,安装后直接都是默认路径)。
    OS     默认位置
    Linux     /usr/bin/google-chrome
    Mac     /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
    Windwos XP     %HOMEPATH%\Local Settings\Application Data\Google\Chrome\Application\chrome.exe
    Windwos Vista     C:\Users\%USERNAME%\AppData\Local\Google\Chrome\Application\chrome.exe

    2.需要下载相应版本的chromedriver,用来架起chrome浏览器与webdriver之间的桥梁。
    3.与FirefoxDriver差不多,需要设置chromedriver的路径。key值为:webdriver.chrome.driver.
    4.Java代码如下:

    System.setProperty("webdriver.chrome.driver", "C://drivers/chromedriver.exe");   WebDriver driver = new ChromeDriver();    

    需要注意的是,chrome浏览器会自动更新,而chromedriver也是不断更新的。如果chrome版本太新,而chromedriver没有相应的更换,会造成只是打开chrome浏览器,而不进行任何操作的问题。另外,ChromeDriver只适用于chrome 12.0.712.0+,如果需要使用更老的版本,见参考页面的详细描述。

参考http://code.google.com/p/selenium/wiki/ChromeDriver
在一个浏览器里,元素可以找到或者可以操作,而在另外一个浏览器内则不行,为什么?

不同浏览器之间解析DOM以及响应事件的机制不同,难免会有一些不兼容性。解决方法:

    1.元素定位,通常是由于DOM解析不同造成的,可以使用不同的findElement方法进行实验,如id,class,xpath等。这个没有统一的结论,大多数情况下id是最靠谱的。推荐!
    2.事件的响应,这个如果存在问题,一般比较难解决。通常是由于浏览器之间的差异造成的。可以通过使用selenium更高的版本,或者更换浏览器的版本来解决。或者想一下,有没有其他的方式,换个事件来绕过去,总有办法的。如果实在解决不了,那也只能暂时是这样了。
Selenium IDE 和 Selenium WebDriverSelenium套件中两个常用的工具,它们在功能和使用方式上有一些区别: 1. Selenium IDE: - Selenium IDE 是一个基于浏览器的开发工具,它允许用户录制、编辑和调试测试案例。 - 它是一个集成开发环境,主要用于快速测试和开发,非常适用于初学者和非开发人员。 - IDE 以插件的形式集成在Firefox浏览器中,但也可以使用Selenium-RC服务器在其他浏览器上运行。 - 它提供了一个图形用户界面(GUI),操作简单直观,可以直接在浏览器内进行测试脚本的创建、编辑和执行。 - Selenium IDE 支持的脚本语言主要是Selenese,这是一种专门用于编写Selenium测试脚本的语言。 2. Selenium WebDriver: - Selenium WebDriver 是一个用于自动化Web应用测试的工具,它提供了一个编程接口来模拟用户在浏览器中的行为。 - WebDriver 是一个更为强大的测试工具,它支持多种编程语言(如Java、Python、C#、Ruby等),并且可以与持续集成工具和测试框架(如JUnit、TestNG、 NUnit等)结合使用。 - WebDriver 不依赖于浏览器的插件,它通过浏览器的原生驱动直接与浏览器交互,因此支持更多的浏览器和操作平台。 - WebDriver 提供了更多的功能和更大的灵活性,例如使用断言、等待条件和复杂的用户交互场景。 - 与Selenium IDE相比,WebDriver更适合进行复杂的测试场景,以及那些需要编写较为复杂脚本的测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值