2013-05-15 3 views
4

driver.Navigate(). GoToUrl는 ("/")webdriver.Navigate(). GotoUrl()에 상대 경로를 사용하려면 어떻게해야합니까?

driver.Navigate(). GoToUrl ("/ 뷰 1"것이다에 "/"대신 "http://www.domain.com/"

다른 일례의 위치를 ​​설정)는 "http://www.domain.com/view1"대신 "/ view1"로 위치를 설정합니다.

이 예제는 주소가 유효하지 않은 브라우저를 반환합니다.

private String baseUrl = "http://www.domain.com/"; 

[...] 

driver.get(baseUrl + "url"); 

driver.get (문자열 URL)) (driver.navigate에 해당하는 (문자열 :

+0

테스트 경로. 루트로부터의 상대 경로는 localhost/what보다 짧고 그 유형도 적습니다. 나는 뿌리 자체를 세계적인 상수로 만들었지 만 여전히 고통을 겪고있다. –

답변

1

이 모두 동일한 도메인이 때 특정 URL로 이동하는 가장 짧은 방법은 아마이다. url).

2

지금이 솔루션은 사용하는 것입니다

driver.Navigate().GoToRelativePath("/view1"); 

와 동일한 도메인 내에서 탐색 할 수 있습니다.

UPDATE : 이 셀레늄 WebDriver 2.42에 유효하지만 3.1에 나열하지 않는 것이 솔루션은

driver.Navigate().GoToUrl(baseUrl + "/view1")

2

당신이 상대 경로를 계산하기 위해 자바 URI를 사용할 수있는 것 현재 URI 또는 ​​도메인 : 당신이 getCurrentUrl을 사용하지 않고 URL을 계산할 수 있다면

import java.net.URI; 

driver.get("http://example.org/one/"); 

// http://example.org/one/two/ 
driver.get(new URI(driver.getCurrentUrl()).resolve("two/").toString()); 

// http://example.org/one/two/three/?x=1 
driver.get(new URI(driver.getCurrentUrl()).resolve("three/?x=1").toString()); 

// http://example.org/one/two/three/four/?y=2 
driver.get(new URI(driver.getCurrentUrl()).resolve("./four/?y=2").toString()); 

// http://example.org/one/two/three/five/ 
driver.get(new URI(driver.getCurrentUrl()).resolve("../five/").toString()); 

// http://example.org/six 
driver.get(new URI(driver.getCurrentUrl()).resolve("/six").toString()); 

(), 당신의 코드를 읽기 쉽게 만들 수 있습니다.