selenium IDE+Java+IEDriverServer.exe

解决方案:

1.配置系统环境变量。

我的电脑--》右键——》属性——》高级系统设置——》环境变量——》系统变量——》path

注:先把IEDriverServer.exe放在C:\Program Files\Internet Explorer根目录里,再把这个路径放到path里。

 2.关闭IE的启用保护模式

打开IE——》设置——》Internet选项——》安全——》去掉启用保护模式前的对勾

总结:当两者都做了,再运行例子,就会成功。

设置注意:

如果是首次使用RF在IE浏览器上测试的同学,务必检查以下几个设置:

1、IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上)

2、IE选项设置的连接页中,局域网设置里的代理服务器设置,不能勾选。如果需要配置代理,请使用上面的pac自动配置脚本来使用代理。

3、IE页面的显示比例要为100%

4、下载IEDriverServer.exe文件,放到环境变量path路径的目录里或把他所在的目录加到path环境变量中。下载地址为:http://code.google.com/p/selenium/downloads/list

因为以前的内容比较久了,也比较旧了。很多库的版本都不是最新的编号了。

我在下面专门列出截止目前最新的版本号,安装方法还是和下面差不多的,建议使用最新的版本安装。同时配上了下载路径,但是如果以后过了很久大家再看到这篇文章的时候,请注意看一下是不是最新的版本。

补充:因为我们用的都是基于Python2.7的,所以相关的库如果支持多个python版本的,都要看一下最好是有py27的,然后再看本机是32位还是64位的,推荐32位的。比如wxPython,pywin32,cx_oracle等等。

Selenium WebDriver使用IE浏览器

当我使用IE浏览器Driver来使用WebDriver时,遇到了一些问题,故记录如下。


如下的Java代码是打开IE浏览器,然后在Google中搜索“smilejay”关键字。

JAVA


package com.selenium.test;

import org.openqa.selenium.ie.InternetExplorerDriver;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.By;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.WebElement;

public class TempGoogle {

    public static void main(String[] args) {

    final String sUrl = "http://www.google.com.hk/";

       System.setProperty("webdriver.ie.driver","C:\\Users\\yren9\\workspace\\selenium\\IEDriverServer.exe");

       DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();

       ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

       WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);

       oWebDriver.get(sUrl);

       try {

    Thread.sleep(1000);

    } catch (InterruptedException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    // Use name locator to identify the search input field.

       WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); 

       oSearchInputElem.sendKeys("smilejay");

       WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnK']"));  

       oGoogleSearchBtn.click();

       try {

        Thread.sleep(5000);

       }

       catch(InterruptedException ex) {

        System.out.println(ex.getMessage());

       }

       oWebDriver.close();

    }

}




上面的代运行行是没有错误的,不过,类似的程序,如果没有写的很好,或IE浏览器环境没设置好,在Eclipse中可能会遇到如下的一些错误提示。

1. 需要设置IE的Driver到“webdriver.ie.driver”变量中,否则可能遇到报错信息:


JAVA

The path to the driver executable must be set by the webdriver.ie.driver system property; for more information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

2012-9-2 16:09:02 org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

警告: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

更具提示,需要添加IEDriverServer.exe(从Selenium官网可下载的),并用如下的代码进行设置。

System.setProperty(“webdriver.ie.driver”,”C:\\Users\\yren9\\workspace\\selenium\\IEDriverServer.exe”);


2. 如果IE浏览器设置安全性较高,在“Internet Options”中都不要选择“Enable Protected Mode”(保护模式),否则可能遇到如下的错误提示。

JAVA

Started InternetExplorerDriver server (64-bit)

2.25.2.0

Listening on port 40961

Exception in thread "main" 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)

Command duration or timeout: 1.18 seconds

Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 22:18:01'

System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_29'

Driver info: driver.version: InternetExplorerDriver

Session ID: 01e30b64-e403-440c-bed8-4859ef2128f9

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

    at java.lang.reflect.Constructor.newInstance(Unknown Source)

    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188)

    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)

    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498)

    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:182)

    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:167)

    at org.openqa.selenium.ie.InternetExplorerDriver.startSession(InternetExplorerDriver.java:133)

    at org.openqa.selenium.ie.InternetExplorerDriver.setup(InternetExplorerDriver.java:106)

    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:52)

    at com.selenium.test.TempGoogle.main(TempGoogle.java:15)

解决方法有两种,一种是修改掉IE的设置,不要在任何情况下使用保护模式(protected mode),另一种即是前面代码中如下片段在运行时设置IE的Capabilities。

JAVA

DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();

ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);

WebDriver oWebDriver = new InternetExplorerDriver(ieCapabilities);



3. 即便是我上面已经修改好的代码(解决了1、2两个问题),在Eclipse中也会有如下的一些运行时警告(我的Win7上的IE9有这个问题),社区上有人也反映了这个问题,但是对测试程序运行时的功能没有影响,作为一个warning,而没有啥好的解决方法。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值