2016-07-10 6 views
0

Chrome을 통해 Paychex에 로그인하고 보고서를 다운로드하는 Java 프로그램을 작성하려고합니다. 내 코드가 웹 사이트로 이동하지만 그 시점에서 멈추었습니다. Selenium Chrome 웹 드라이버를 사용하고 있으며 올바른 이름을 입력 했음에도 불구하고 로그인 필드의 요소 ID를 찾을 수 없습니다. 나는 이걸 아무 쓸모없는 것으로 생각하려고 몇 시간을 보냈다. id, name, css 및 xpath로 요소를 찾으려고했습니다. 아무것도 효과가 없습니다! 아래는 웹 사이트 url과 코드입니다. 이 요소에 액세스하는 데 도움이 될 것입니다. 감사합니다.셀레늄 요소 ID를 찾을 수 없습니다.

WebDriver driver = new ChromeDriver(); 
driver.get("https://myapps.paychex.com/landing_remote/login.do?TYPE=33554433" 
     + "&REALMOID=06-fd3ba6b8-7a2f-1013-ba03-83af2ce30cb3&GUID=&SMAUTHREA" 
     + "SON=0&METHOD=GET&SMAGENTNAME=09PZJoiHr8jiAF1z4DL6SopY5OyRzoKSeZ4y" 
     + "IhpJe7nkRdeIwtlMrg0rd7X3FRDM&TARGET=-SM-https%3a%2f%2fmyapps%2epa" 
     + "ychex%2ecom%2f");  
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS) 
WebElement id = driver.findElement(By.id("USER")); 

HTML : 당신은 올바른 ID하지만 원하는 요소가 IFRAME에이 할

<input name="USER" class="form-control ng-pristine ng-invalid ng-invalid-required" id="USER" required="" type="text" maxlength="50" placeholder="Enter Username" data-ng-model="user.username" data-payx-form-value="siteminder.username" data-ng-change="clearShowError()" data-payx-focus=""> 
+1

귀하의 HTML은 어디에 있습니까? –

+0

html 요소 ID는 USER입니까? Chrome에서 F12를 누르면 개발자 도구의 작은 커서 아이콘이 표시되고 입력란을 클릭하여 해당 ID가 무엇인지 확인할 수 있습니다. – Gavin

+0

죄송합니다 - 저도 해 봤는데 여기 있습니다. JMarotta

답변

2

. 먼저 IFRAME으로 전환하면 요소에 액세스 할 수 있습니다.

driver.get("https://myapps.paychex.com/"); 
driver.switchTo().frame("login"); 
WebDriverWait wait = new WebDriverWait(driver, 10); 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("USER"))).sendKeys("MyUsername"); 
// do stuff but be sure to switch back to default content if you need to access elements outside the IFRAME 
driver.switchTo().defaultContent(); 
관련 문제