Question: I need to analyse web page contents. Page has javascrips. 
Can you advice on better way than using Selenium?

If not:
page when loaded in browser has elements:

```
<div class="js-container">    <table class="zebra" style="width: 100%;">
        <tbody><tr>
            <th>A</th>
            <th>B</th>
            <th>C</th>
        </tr>
            <tr>
                <td>A1</td>
                <td>A2</td>
                <td>
                    <a href="http://X" style="color: black">T1</a>
                </td>
            </tr>
            <tr>
                ....
            </tr>
....

```

I need to read a table, element by element. I run for example:

`myList = myDriver.find_elements_by_class_name("js-container")`.

Then how do I get inner elements of "js-container" object?

The only element resulting myList has is: `print (myList[0])`:

```
<selenium.webdriver.remote.webelement.WebElement (session="61238", element="{71293}")>

```

Answer: 
You will be able to achieve it using [reauthenticate](https://firebase.google.com/docs/auth/ios/manage-users) before changing the password.

```
let user = FIRAuth.auth()?.currentUser
let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: currentPassword)    

user?.reauthenticateWithCredential(credential, completion: { (error) in
    if error != nil{
        self.displayAlertMessage("Error reauthenticating user")
    }else{
        //change to new password
    }
})

```

Just to add more information, [here](https://stackoverflow.com/questions/38253185/re-authenticating-user-credentials-swift/38253448#38253448) you can find how to set the credential object for whatever provider you are using.
**For Swift 4:**

```
typealias Completion = (Error?) -> Void 

func changePassword(email: String, currentPassword: String, newPassword: String, completion: @escaping Completion) {
    let credential = EmailAuthProvider.credential(withEmail: email, password: currentPassword)
    Auth.auth().currentUser?.reauthenticate(with: credential, completion: { (error) in
        if error == nil {
            currentUser.updatePassword(to: newPassword) { (errror) in
                completion(errror)
            }
        } else {
            completion(error)
        }
    })
}

```

Firebase Documentation can be found [here](https://firebase.google.com/docs/auth/ios/manage-users#re-authenticate_a_user)