2016-10-24 1 views

답변

1

이 코드를 사용해보세요. 로그인 버튼은 프레임 아래에서 사용할 수 있습니다. 요소에 액세스하려면 해당 프레임으로 전환해야합니다.

driver.get("https://campus.uni-stuttgart.de/cusonline/webnav.ini"); 
driver.switchTo().frame(driver.findElement(By.xpath("//*[@name='menue']"))); 
driver.findElement(By.cssSelector("#menue_frame_key_icon > img")).click(); 
driver.switchTo().defaultContent(); 
+0

들으. 그러나 나는 다른 질문이있다. 이제 사용자 이름을 텍스트 상자에 입력하고 싶습니다. 이 텍스트 상자는 양식 아래에 있습니다. 그 양식으로 전환해야합니까? – Ildon

+0

해당 양식으로 전환 할 필요가 없습니다. 그러나 나는 name = "detail"이라는 또 다른 프레임을 본다. 사용자 이름 텍스트 상자에 액세스하기 전에 해당 프레임으로 전환해야합니다. – Saravanan

0

그것은 로그인 버튼 ID를 표시하는 것은 "menue_frame_key_icon"입니다.

그래서이 있어야한다 : 당신은 번갈아 여러 가지 방법으로 수행 할 수있는 ID의 하위 요소를 시도 할 수

driver.findElement(By.id("menue_frame_key_icon")).click(); 

. 그래도 작동합니다.

driver.findElement(By.cssSelector("#menue_frame_key_icon > img")).click(); 
+0

당신의 답변입니다. 나는 둘 다 시도했지만 아무 일도 일어나지 않았다 :/package CampusPackage; 공용 클래스 CampusCode { \t \t 공공 정적 무효 메인 (문자열 []에 args) ", 예외를 \t { \t \t System.setProperty를 ("webdriver.chrome.driver "을 던져 C : \\ 프로그램 파일 (x86) \\ SeleniumDrivers \\ chromedriver.exe "); \t WebDriver 드라이버 = 새 ChromeDriver(); \t driver.get ("https://campus.uni-stuttgart.de/cusonline/webnav.ini"); \t driver.findElement (By.cssSelector ("# menue_frame_key_icon> img")). 클릭(); \t \t System.out.println ("Title :"+ driver.getTitle()); \t \t \t} } 당신이 대답을 – Ildon