2017-12-27 3 views
0

In Moneycontrols website kann ich den Benutzernamen und das Passwort nicht eingeben, während ich mich anmelde. Selenium kann die Webelemente nicht finden.In Moneycontrols Login-Seite kann Selenium das Webelement nicht finden.

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

Antwort

0

Das Email or User ID Feld innerhalb eines , so sendKeys() bei Email or User ID und Password Feld rufen Sie an die jeweilige wechseln haben wie folgt:

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

Vielen Dank! Es funktioniert gut. Bitte erklären Sie, wie Sie den xPath dafür gefunden haben? in Firefox Ich bin nicht in der Lage, dieses Webelement zu finden, und es gibt keine Quelle mit dem Wert "'https://accounts.moneycontrol.com/mclogin/?d=2']". Ich habe auch nicht verstanden, wie Sie herausgefunden haben, ob es Iframes auf dieser Seite gibt, ich habe sie nicht gesehen, als ich den Feuerpfad hinaufgeschaut habe. bitte erkläre, danke. – Rajesh

+0

@Rajesh Das Finden des richtigen 'XPath' ist ziemlich einfach. Downgrade dein 'Firefox' auf v53.x Unterebenen, wo' Firebug' & 'Firepath' unterstützt wird, was dir den' Top Level Content' und die dazugehörigen 'Frames' deutlich anzeigt. Bald wirst du verstehen, wie man 'Frames' erkennt. Upgraden Sie zurück zu 'Firefox Quantum' oder' Chrome' und finden Sie die 'Frames' einfach über' Dev Tools', das ist die beste Möglichkeit, um Elemente zu finden. Auf 'MoneyControl'-Seite, wenn Sie das' DOM' durchlaufen, finden Sie das '