2017-12-27 16 views
0

Moneycontrol의 website에 로그인하는 동안 사용자 이름과 암호를 입력 할 수 없습니다. Selenium에서 Webelements를 찾을 수 없습니다.MoneyControl의 로그인 페이지에서 Selenium이 Webelementes를 찾을 수 없습니다.

public void setUrl() throws IOException { 
    driver = new FirefoxDriver() 
    driver.get("http://www.moneycontrol.com/"); 
} 

public void Login() { 
    driver.findElement(By.xpath("//a[@title='Log In']")).click(); 
    //enter user name and password 

    driver.findElement(By.xpath("//div[@class='formbox']/div[1]/form/div[1]")).sendKeys("[email protected]"); 
    driver.findElement(By.xpath("//input[@id='pwd']")).sendKeys("[email protected]"); 

screenshot

답변

0

Email or User ID 필드 그래서 다음과 같이 각각의 <iframe>로 전환해야 Email or User IDPassword 필드에서 sendKeys()를 호출하기 위해, <iframe>에 있습니다 :

new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@src='https://accounts.moneycontrol.com/mclogin/?d=2']"))); 
driver.findElement(By.xpath("//form[@id='login_form']//input[@class='textfield' and @id='email']")).sendKeys("[email protected]"); 
driver.findElement(By.xpath("//form[@id='login_form']//input[@class='textfield' and @id='pwd']")).sendKeys("[email protected]"); 
+1

감사합니다! 잘 작동합니다. xPath를 어떻게 찾았는지 설명해주십시오. in firefox이 web 요소를 찾을 수 없으며 "https://accounts.moneycontrol.com/mclogin/?d=2 '] 값이있는 src가 없습니다." 나는 또한이 페이지에 iframe이 있는지 발견 한 방법을 이해하지 못했습니다. 화재 경로를 들여다 보지 않고 보았습니다. 친절하게 설명해 주셔서 감사합니다. – Rajesh

+0

@Rajesh 올바른'xpath'를 찾는 것은 꽤 쉽습니다. 파이어 폭스를 파이어 폭스 (Firebug)와 파이어 패스 (Firepath)가 지원되는 v53.x 하위 레벨로 다운 그레이드하면 명확하게 '톱 레벨 컨텐츠'와 관련 프레임을 보여줍니다. 곧 당신은'프레임 '을 탐지하는 방법을 이해하게 될 것입니다. 'Firefox Quantum' 또는'Chrome'으로 다시 업그레이드하고 모든 요소를 ​​찾는 가장 좋은 방법 인'Dev Tools'를 통해'Frames'를 쉽게 찾을 수 있습니다. 'MoneyControl' 사이트에서'DOM'을 탐색하면 값이 'src' 인 accounts가 accounts.moneycontrol.com/mclogin/?d=2로 설정된