InternetExplorerDriver의 다른 버전을 어떻게 인스턴스화 할 수 있는지 궁금합니다.다른 버전의 InternetExplorerDriver - Selenium 2를 인스턴스화하는 방법은 무엇입니까?
WebDriver ieWebDriver = new InternetExplorerDriver();
하지만 IE6, IE7, IE8 및 IE9을 구별 할 수없는입니다 :
그건 내가 IE 드라이버를 만드는 방법입니다.
건배,
InternetExplorerDriver의 다른 버전을 어떻게 인스턴스화 할 수 있는지 궁금합니다.다른 버전의 InternetExplorerDriver - Selenium 2를 인스턴스화하는 방법은 무엇입니까?
WebDriver ieWebDriver = new InternetExplorerDriver();
하지만 IE6, IE7, IE8 및 IE9을 구별 할 수없는입니다 :
그건 내가 IE 드라이버를 만드는 방법입니다.
건배,
Windows는 하나의 IE 버전 만 설치할 수 있습니다. 여러 버전을 실행하기위한 해킹이 있지만 실제로는 WebDriver를 사용하지 못하게 할 것이라고 확신합니다 (잘못된 것으로 입증되기를 원하지만).
신발에서는 테스트하고 싶은 각 버전에 대해 Windows VM을 설정하고 RemoteWebDriver를 사용하여 대화하려고합니다.
그러나 최신 IE는 "브라우저 모드"를 지원합니다. F12를 누르고 탐색 모드를 선택하기 만하면됩니다. AFAIK 꽤 잘 작동합니다 - 적어도 IE8과 IE7에 비해. 자바 스크립트로 액세스 할 수 있고 Selenium에서 자동으로 바뀌 었는지 궁금합니다.
간단한 대답은 다음과 같습니다. 아니요, F12를 사용하여 시뮬레이션 할 수 없습니다 셀렌. "브라우저 모드"는 신뢰할 수 없습니다. http://stackoverflow.com/a/11418046/1080590 – Miro
예, 가능합니다. 내가 확장 메서드를 작성했습니다
this.SetCapability(CapabilityType.BrowserName, "internet explorer");
this.SetCapability(CapabilityType.Version, "8");
this.SetCapability(CapabilityType.Platform, "WINDOWS");
을 쉽게이 호출에 의해 모든 버전의 인스턴스를 만들 : 당신이 RemoteWebDriver를 사용하는 경우
DesiredCapabilities internetExplorer8 =
DesiredCapabilities.InternetExplorer().SetVersion("8");
IWebDriver webDriver = new RemoteWebDriver(seleniumHubUrl, internetExplorer8);
이 정말 의미가 DesiredCapabilities 당신이 사용할 수있는 공공 방법을 여러 개의 노드로 구성된 Selenium2 Grid/Hub를 가지고 있습니다. 각각 다른 버전의 Internet Explorer를 가지고 있으며 각각은 허브에 연결된 노드입니다.
그리고 확장 :public static class DesiredCapabilitiesExtension
{
public static DesiredCapabilities SetBrowserName(this DesiredCapabilities desiredCapabilities, string browserName)
{
// make sure the browser name is lowercase
desiredCapabilities.SetCapability(CapabilityType.BrowserName, browserName.ToLowerInvariant());
return desiredCapabilities;
}
public static DesiredCapabilities SetVersion(this DesiredCapabilities desiredCapabilities, string version)
{
desiredCapabilities.SetCapability(CapabilityType.Version, version);
return desiredCapabilities;
}
public static DesiredCapabilities SetPlatform(this DesiredCapabilities desiredCapabilities, string platform)
{
// make sure the platform is case sensitive, uppercase to make it work
desiredCapabilities.SetCapability(CapabilityType.Platform, platform.ToUpperInvariant());
return desiredCapabilities;
}
}
이 작동하지 않는 것 같습니다. 버전 설정을 시도 할 때 그리드에서 IE 버전을 찾을 수 없습니다. 그것의 버전 번호와 함께 세션을 전달하지만 올바른 버전으로 브라우저를 찾을 수 없습니다 및 예외를 던져 이러한 기능을 가진 브라우저를 찾을 수 없습니다. –
가 서로 다른 버전의 인스턴스를, 당신은 필요한 버전 번호 capability.setVersion를 사용하여 버전을 설정할 수 있습니다.
-browser "browserName = 인터넷 익스플로러, MAXINSTANCES = 5, 플랫폼 = WINDOWS, 버전 = 8"
: 노드를 시작하는 동안 동시에, 당신은 명령 줄에서 다음 매개 변수를 추가해야 동일한 노드에서 여러 버전을 지원하려면 "-browser"를 여러 번 사용할 수 있습니다.
노드 시작시 브라우저 플래그를 설정해야합니다. 그렇지 않으면 그리드가 원하는 버전을 찾지 못합니다. 감사! – Samuel
예 저는 IE 설치가 다른 여러 VM을 사용할 계획이었습니다. 프로그래밍 방식으로 RemoteWebDriver를 사용하여 다른 IE 버전을 어떻게 호출 할 수 있습니까? – sebarmeli
코드에서 어떤 서버에 어떤 IE 버전이 있는지 알아야하고 올바른 URL로 RemoteWebDriver를 인스턴스화해야합니다. – jarib
Modern.IE 웹 사이트에서는 다양한 버전의 IE가 설치된 VM 이미지를 다운로드 할 수 있습니다. https://www.modern.ie/en-us/virtualization-tools#downloads –