Selenium自動化測試、IEDriverServer、64位、最新版本,IEDriverServer.exe selenium webdriver IE瀏覽器驅(qū)動,Selenium2.0 webdriver 自動化測試(Java、Python等都可用)、IEDriverServer、64位、最新版本(2015.10.7)IEDriverServer.exe selenium實現(xiàn)用IE 瀏覽器自動化的時候需要用到的。
Selenium2.0之WebDriver的啟用IE10(IEDriverServer)
解決方案:
1.配置系統(tǒng)環(huán)境變量。
我的電腦--》右鍵——》屬性——》高級系統(tǒng)設置——》環(huán)境變量——》系統(tǒng)變量——》path
注:先把IEDriverServer.exe放在C:\Program Files\Internet Explorer根目錄里,再把這個路徑放到path里。
2.關(guān)閉IE的啟用保護模式
打開IE——》設置——》Internet選項——》安全——》去掉啟用保護模式前的對勾
總結(jié):當兩者都做了,再運行例子,就會成功。
設置注意:
如果是首次使用RF在IE瀏覽器上測試的同學,務必檢查以下幾個設置:
1、IE選項設置的安全頁中,4個區(qū)域的啟用保護模式的勾選都去掉(或都勾上)
2、IE選項設置的連接頁中,局域網(wǎng)設置里的代理服務器設置,不能勾選。如果需要配置代理,請使用上面的pac自動配置腳本來使用代理。
3、IE頁面的顯示比例要為100%
4、下載IEDriverServer.exe文件,放到環(huán)境變量path路徑的目錄里或把他所在的目錄加到path環(huán)境變量中。下載地址為:http://code.google.com/p/selenium/downloads/list
因為以前的內(nèi)容比較久了,也比較舊了。很多庫的版本都不是最新的編號了。
我在下面專門列出截止目前最新的版本號,安裝方法還是和下面差不多的,建議使用最新的版本安裝。同時配上了下載路徑,但是如果以后過了很久大家再看到這篇文章的時候,請注意看一下是不是最新的版本。
補充:因為我們用的都是基于Python2.7的,所以相關(guān)的庫如果支持多個python版本的,都要看一下最好是有py27的,然后再看本機是32位還是64位的,推薦32位的。比如wxPython,pywin32,cx_oracle等等。
Selenium WebDriver使用IE瀏覽器
當我使用IE瀏覽器Driver來使用WebDriver時,遇到了一些問題,故記錄如下。
如下的Java代碼是打開IE瀏覽器,然后在Google中搜索“smilejay”關(guān)鍵字。
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瀏覽器環(huán)境沒設置好,在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官網(wǎng)可下載的),并用如下的代碼進行設置。
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. 即便是我上面已經(jīng)修改好的代碼(解決了1、2兩個問題),在Eclipse中也會有如下的一些運行時警告(我的Win7上的IE9有這個問題),社區(qū)上有人也反映了這個問題,但是對測試程序運行時的功能沒有影響,作為一個warning,而沒有啥好的解決方法。
Started InternetExplorerDriver server (64-bit)
2.25.2.0
Listening on port 44940
2012-9-2 16:58:19 org.apache.http.impl.client.DefaultRequestDirector tryExecute
信息: I/O exception (org.apache.http.NoHttpResponseException) caught when processing request: The target server failed to respond
2012-9-2 16:58:19 org.apache.http.impl.client.DefaultRequestDirector tryExecute
信息: Retrying request