Selenium Webdriver - click on hidden elements

0
0

I am trying to automate upload file functionality in Google Drive.

The element used to pass parameters is hidden with height – 0px.

None of the user actions would make this element visible. So I need a work around to click on the element while it is not visible.

<input type="file" style="height: 0px; visibility: hidden; position: absolute; width: 340px; font-size: inherit;" multiple=""/>

The xpath for the above element is –

//*[@class='goog-menu goog-menu-vertical uploadmenu density-tiny']/input

I am using

WebDriver.findElement(By.xpath(<xpath>).sendKeys(<uploadFile>)

Exception –

org.openqa.selenium.ElementNotVisibleException

  • Element is not currently visible and so may not be interacted with.

I have tried using JavascriptExecutor. But unable to find the exact syntax.

  • You must to post comments
0
0

Try this:

WebElement elem = yourWebDriverInstance.findElement(By.xpath("//*[@class='goog-menu goog-menu-vertical uploadmenu density-tiny']/input"));
String js = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible';";
((JavascriptExecutor) yourWebDriverInstance).executeScript(js, elem);

The above bunch would change the visibility of your file input control. You can then proceed with the usual steps for file upload like:

elem.sendKeys("<LOCAL FILE PATH>"); 

Be aware, by changing the visibility of an input field you are meddling with the application under test. Injecting scripts to alter behavior is intrusive and not recommended in tests.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website