Skip to content

JavaScriptExecutor doesn't seem to have an 'executeScript' feature #51

@hammondreg

Description

@hammondreg

I'm trying to access my own banking details (not other peoples!) by clicking on the 'Continue' button of:

https://onlinebanking.nationwide.co.uk/AccessManagement/IdentifyCustomer/IdentifyCustomer

but without success. I have tried a normal 'click()' on the button, but nothing happens no matter how long I wait.

I have already successfully used Selenium in a .Net program to overcome this problem, and whilst the Selenium version (in C#) also seems to ignore a 'click()', when I use:

JavaScriptExecutor.ExecuteScript("arguments[0].click();", targetButton);

it does have the required effect, i.e. the button 'clicks' and I transfer to the next html page so all is good.

Using a similar approach with 'htmlunit-android' however, there doesn't seem to be an extension 'executeScript' that I can use with 'JavaScriptExcutor'. Have I missed something? Is it there under another guise??

Here's the Kotlin snippet (sorry its not Java, but I have to use Kotlin because Java doesn't support co-routines):

import org.htmlunit.javascript.background.JavaScriptExecutor
import org.htmlunit.WebClient
import org.htmlunit.html.HtmlButton
import org.htmlunit.html.HtmlPage
    
private lateinit var mainScreen : HtmlPage

var webClient = WebClient()     // Create the webClient
var myURL = "https://onlinebanking.nationwide.co.uk/AccessManagement/IdentifyCustomer/IdentifyCustomer"

var mainPage = webClient.getPage(myURL) as HtmlPage        // Retrieve the target page

var jsexecutor: JavaScriptExecutor = webClient as JavaScriptExecutor    // Declare a JS executor
        
var buttonsList = mainPage.getElementsByTagName("button") as List<HtmlButton> // Find all buttons
for (targetButton in buttonsList )   // Loop round the buttons
{
        if (targetButton.textContent == "Continue") // This is the one I'm looking for
        {
                jsexecutor.executeScript("arguments[0].click();", targetButton) // <= 'executeScript'!! isn't there!
         }
}

Thanks in advance for any assistance

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions